Как я могу найти файл, найденный командой find, в текущий каталог? - PullRequest
0 голосов
/ 25 апреля 2020

Я пробовал эту команду:

cd ~/Desktop
sudo find /tmp -name *file.doc* -exec 'mv "{}" ./file.docx' '{}' \;

, но ошибка:

find: mv "a b cfile.docx" ./file.docx: No such file or directory'

Но команда mv выглядит так, как должна (первый аргумент - файл в кавычках, найденный в /tmp dir, second arg - новое имя для этого файла в текущем каталоге - то есть mv SOURCE DEST является правильным). Если я сделаю это в /tmp dir - это будет работать, так почему ошибка?

1 Ответ

0 голосов
/ 25 апреля 2020

Find пытается выполнить файл 'mv "a b cfile.docx" ./file.docx', но такого файла нет.

Вот что происходит:

$ 'mv "a b cfile.docx" ./file.docx'
-bash: mv "a b cfile.docx" ./file.docx: No such file or directory

bash также не может найти файл, который мы попросили выполнить.

Намерение - выполнить mv. Попробуйте эту исправленную версию.

  • Я удалил одиночную кавычку, заключенную в аргумент arg, в -exec
  • , а также {} в конце не требуется. нам просто нужно заменить файл в одном месте
sudo find /tmp -name *file.doc* -exec mv "{}" ./file.docx \;
...