是否可以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
答案1
find
有-exec
争论。
如果您想删除find
输出,只需使用此命令:
find -iname "*Resume 2004*doc~" -exec rm -f {} \;
答案2
由于文件名中包含空格,因此该rm
命令不起作用,因此您必须引用文件,或者可以使用不带引用的反斜杠,如下所示:
rm ./Career/No\ Longer\ Needed/Microsoft\ Resume\ 2004.doc
因此,您无法真正打印路径并通过复制粘贴来删除它,因为您需要添加引号或反斜杠,但您可以做的是使用命令打印inode
文件的路径find
并使用 inode 号将其删除,如下所示:
find . -type f -name "*Resume 2004*doc~" -printf '%p %i\n'
然后你拿回了它的 inode 比如说 1234567 然后你像这样删除它:
find . -inum 1234567 -exec rm -fi {} \;