在18.04中,我能够在以下目录中找到并丢弃除最新的n 个(例如 8 个)文件之外的所有文件:
find . -maxdepth 1 -type f | sort -r | sed 1,8d | xargs -d \n gio trash
当我在新安装的20.04中尝试此操作时,出现错误:
gio: file:///path/to/file.txt%0A: Error moving file /path/to/file.txt
to the Rubbish Bin: No such file or directory
我可以使用以下方法手动删除同一个文件而不会出错:
gio trash file.txt
升级后我缺少什么?
转义字符在运行
\n
前由 bash 解释,xargs
因为您没有引用它。所以你告诉xargs
削减项目n
,而不是\n
。你想把它放在单引号中:
-d '\n'
.可视化问题:
(我
-I{} echo -{}-
用来显示分隔的项目,以显示分隔符是否/如何工作)虽然这会起作用,但我仍然建议不要这样做
你不应该使用换行符来分隔文件名,因为换行符是它的有效字符。
更好的使用: