Я хотел скопировать весь свой pdfs в папку PDF, для которой я использовал это find
команда с -exec
опция. Прежде чем я запустил, я создал названную папку pdf
в этой текущей папке
sudo find . -type f -iname "*.pdf" -exec mv {} /pdf \;
pdfs не стало, но не, где я ожидал. Также нет никакой / папки PDF, я думал там, что они могли быть. Существует папка штата в / PDF
-rw-r--r--@ 1 myusername staff 9,9M 19 Aug 19:53 pdf
Какая-либо идея?
Целевой каталог для mv
Вы дали как /pdf
, необходимо было использовать ./pdf
. С тех пор не было никакого каталога названная (папка) pdf
в каталоге верхнего уровня /
, но так как Вы были root
, mv
перемещенный каждый из файлов это переместилось в файл /pdf
. Единственный восстанавливаемый файл теперь называют /pdf
, и был последний, обработанный mv
.
Как в стороне, когда я sudo find
, Я ВСЕГДА использую --target-directory
переключатель к mv
, и выполненный находка с echo
во-первых, для обеспечения это делает то, что я хочу, как это:
# NOTE: This demonstrates a FAIL
sudo find . -type f -iname '*.pdf' -exec echo mv --target-directory=/pdf {} \;
Но, я, вероятно, сделал бы это как это:
mkdir ./pdf
find . -type f -iname '*.pdf' -print0 | xargs -0 mv --target-directory=./pdf
mv
покажет сообщение об ошибке если аргумент --target-directory
не существует.
Я использую find -print0
соединенный с xargs -0
иметь дело с именами файлов, содержащими пробелы и другие глупые символы.
Это не папка. Папки обнаруживаются с d
перед другими полномочиями на крайне левом. Вы видели бы что-то как drwx-r-xr-x
, если бы это была папка.
Вместо этого Вы переименовали каждый файл /pdf
. Переименование файла к имени, которое уже существует, удаляет исходный файл. Это означает удаление файлов, за исключением последнего, который Вы переименовали.
Другой связанный вопрос соглашения с восстановлением потерянного PDFs.