我有一个.txt文件中的文件列表(比如list.txt)。我想删除该列表中的文件。我以前没有做过脚本。有些人可以提供我可以使用的shell脚本/命令。我有bash shell。
答案 0 :(得分:33)
while read -r filename; do
rm "$filename"
done <list.txt
很慢。
rm $(<list.txt)
如果参数太多,将失败。
我认为它应该有效:
xargs -a list.txt -d'\n' rm
答案 1 :(得分:10)
尝试此命令:
rm -f $(<file)
答案 2 :(得分:3)
如果文件名中包含空格,则其他答案都不起作用;他们会将每个单词视为单独的文件名。假设文件列表在list.txt
中,这将始终有效:
while read name; do
rm "$name"
done < list.txt
答案 3 :(得分:1)
以下内容应该有效,并且在您循环播放时为您留下空间。
编辑:请勿执行此操作,请参阅此处:http://porkmail.org/era/unix/award.html
for $(cat list.txt)中的文件;做rm $文件;完成击>
答案 4 :(得分:0)
要在macOS上快速执行,xargs
自定义分隔符d
不可用:
<list.txt tr "\n" "\0" | xargs -0 rm
答案 5 :(得分:0)
在linux上,您可以尝试:
printf "%s\n" $(<list.txt) | xargs -I@ rm @
就我而言,我的.txt文件包含*.ext
类型的项目列表,并且运行良好。
答案 6 :(得分:0)
我今天只是在寻找解决方案,最终使用了一些答案和我拥有的一些实用功能的修改后的解决方案。
// This is in my .bash_profile
# Find
ffe () { /usr/bin/find . -name '*'"$@" ; } # ffe: Find file whose name ends with a given string
# Delete Gradle Logs
function delete_gradle_logs() {
(cd ~/.gradle; ffe .out.log | xargs -I@ rm@)
}