Mam katalog zawierający dużą liczbę plików PDF, z których niektóre znajdują się w podkatalogach (które mogą mieć głębokość kilku warstw). Chciałbym przenieść wszystkie pasujące pliki *.pdf
do jednego folderu wyjściowego o nazwie papers
.
W jaki sposób mogę to zrobić?
linux
command-line
blz
źródło
źródło
a/x.pdf
ib/x.pdf
?Odpowiedzi:
Jeśli korzystasz
bash
z najnowszej wersji, możesz skorzystać zglobstar
opcji:źródło
Oto test, który zrobiłem
Zwróć uwagę na plik „aaa bbb.pdf”.
źródło
"{}"
aby zajmować się nazwami plików zawierającymi spacje?(podobny do innej odpowiedzi, ale wolę pipe / xargs / mv ... bardziej intuicyjny dla mnie)
Do twojej wiadomości, zrobiłem powyższy skrypt jednowierszowy z powodzeniem w wielu katalogach i wielu plikach pdf.
źródło
-print0
do swojego znaleziska i-0
do xargs.W wierszu polecenia systemu Windows (cmd.exe) można użyć:
źródło
Jeśli przeszukujesz tylko jeden katalog głęboko, możesz:
gdzie
<destination>
oznacza jakiś katalog.mv
nie utworzy automatycznie katalogu dla Ciebie.źródło