1

Можно ли напечатать find выход пути таким образом , что вы можете копировать и вставлять их, они уже будут должным образом спасся , так что вы можете выполнять команды на этом пути? Обычно я должен ставить цитаты вокруг них.

Пример.

$ find -iname "*Resume 2004*doc~"
./Career/No Longer Needed/Microsoft Resume 2004.doc
$ rm ./Career/No Longer Needed/Microsoft Resume 2004.doc
ERROR: No such file: ./Career/No
$ rm "./Career/No Longer Needed/Microsoft Resume 2004.doc"

Примечание: я не хочу выполнять rm "автоматически" через -exec или xargs . Я знаю, как это сделать.

2 ответа2

0

find аргумент -exec .

Если вы пытаетесь удалить результаты find , просто используйте эту команду:

find -iname "*Resume 2004*doc~" -exec rm -f {} \;
0

Команда rm не работает, так как ваше имя файла содержит пробелы, поэтому по этой причине вы должны либо заключить в кавычки свой файл, либо использовать обратную косую черту без кавычек, например:

rm ./Career/No\ Longer\ Needed/Microsoft\ Resume\ 2004.doc

Таким образом, вы не можете на самом деле распечатать путь и удалить его, вставив копию, потому что вам нужно либо добавить кавычки или обратную косую черту, но вы можете просто распечатать inode файла с помощью команды find и удалить его, используя индекс такой номер:

find . -type f -name "*Resume 2004*doc~" -printf '%p %i\n'

и вы возвращаете его индекс, скажем, 1234567, и вы удаляете его так:

find . -inum 1234567 -exec rm -fi {} \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .