Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据文本文件的内容删除目录,Linux_Linux_Shell_Directory - Fatal编程技术网

根据文本文件的内容删除目录,Linux

根据文本文件的内容删除目录,Linux,linux,shell,directory,Linux,Shell,Directory,我有一个充满子目录的目录,如下所示: Track_0000111 Track_0004444 Track_0022222 Track_0333333 Track_5555555 Track_0000111 Track_0022222 Track_0333333 #!/bin/bash while read file rm -rfv "$file" done < RemoveFromTop6000_reformatted.txt 如果某些目录包含在文件“RemoveFromT

我有一个充满子目录的目录,如下所示:

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
如果某些目录包含在文件“RemoveFromTop6000\u reformatted.txt”的列表中,我想删除它们

文本文件的内容如下所示:

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
我试着写一个小脚本来处理这个问题,但它似乎不起作用:

#!/bin/bash

    for file in cat RemoveFromTop6000_reformatted.txt; do
        rm -rfv $file
    done
不幸的是,这只是删除文本文件,而不是目录。有什么建议吗


谢谢

对于,无需
,对于类似的内容,您可以在阅读时执行
。。。;做像这样完成

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
#/bin/bash
读取文件时
rm-rfv“$file”
完成
无需对
进行
,对于类似的内容,您可以在阅读时执行
。。。;做像这样完成

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
#/bin/bash
读取文件时
rm-rfv“$file”
完成
无需对
进行
,对于类似的内容,您可以在阅读时执行
。。。;做像这样完成

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
#/bin/bash
读取文件时
rm-rfv“$file”
完成
无需对
进行
,对于类似的内容,您可以在阅读时执行
。。。;做像这样完成

Track_0000111
Track_0004444
Track_0022222
Track_0333333
Track_5555555
Track_0000111
Track_0022222
Track_0333333
#!/bin/bash

while read file
    rm -rfv "$file"
done < RemoveFromTop6000_reformatted.txt
#/bin/bash
读取文件时
rm-rfv“$file”
完成
您忘记了给cat打电话时的反引号。如果没有它们,
rm
将简单地删除文件
cat
(该文件可能不存在,但您可能不会注意到,因为您正在使用
rm-f
)和
RemoveFromTop6000\u reformatted.txt

试试这个:

#!/bin/bash

for file in `cat RemoveFromTop6000_reformatted.txt`; do
    rm -rv "$file"
done
或者,更简单地说

rm -rv `cat $file`

(但这仅在目录名不包含空格的情况下有效)。

您忘记了在调用cat时使用反引号。如果没有它们,
rm
将简单地删除文件
cat
(该文件可能不存在,但您可能不会注意到,因为您正在使用
rm-f
)和
RemoveFromTop6000\u reformatted.txt

试试这个:

#!/bin/bash

for file in `cat RemoveFromTop6000_reformatted.txt`; do
    rm -rv "$file"
done
或者,更简单地说

rm -rv `cat $file`

(但这仅在目录名不包含空格的情况下有效)。

您忘记了在调用cat时使用反引号。如果没有它们,
rm
将简单地删除文件
cat
(该文件可能不存在,但您可能不会注意到,因为您正在使用
rm-f
)和
RemoveFromTop6000\u reformatted.txt

试试这个:

#!/bin/bash

for file in `cat RemoveFromTop6000_reformatted.txt`; do
    rm -rv "$file"
done
或者,更简单地说

rm -rv `cat $file`

(但这仅在目录名不包含空格的情况下有效)。

您忘记了在调用cat时使用反引号。如果没有它们,
rm
将简单地删除文件
cat
(该文件可能不存在,但您可能不会注意到,因为您正在使用
rm-f
)和
RemoveFromTop6000\u reformatted.txt

试试这个:

#!/bin/bash

for file in `cat RemoveFromTop6000_reformatted.txt`; do
    rm -rv "$file"
done
或者,更简单地说

rm -rv `cat $file`

(但这仅在目录名不包含空格时有效)。

您可以尝试下面的命令

命令:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
说明:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
命令将删除“sample.txt”中提到的文件和目录

注意:

  • 在您的情况下,请确保“RemoveFromTop6000_reformatted.txt” 只包含目录名
  • 如果目录名包含空格,则该命令也将起作用

您可以尝试下面的命令

命令:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
说明:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
命令将删除“sample.txt”中提到的文件和目录

注意:

  • 在您的情况下,请确保“RemoveFromTop6000_reformatted.txt” 只包含目录名
  • 如果目录名包含空格,则该命令也将起作用

您可以尝试下面的命令

命令:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
说明:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
命令将删除“sample.txt”中提到的文件和目录

注意:

  • 在您的情况下,请确保“RemoveFromTop6000_reformatted.txt” 只包含目录名
  • 如果目录名包含空格,则该命令也将起作用

您可以尝试下面的命令

命令:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
说明:

  sed 's/^/"/g' sample.txt | sed 's/$/"/g' | xargs rm -rfv
命令将删除“sample.txt”中提到的文件和目录

注意:

  • 在您的情况下,请确保“RemoveFromTop6000_reformatted.txt” 只包含目录名
  • 如果目录名包含空格,则该命令也将起作用

我们的答案解决了您的问题吗?我们的答案解决了您的问题吗?我们的答案解决了您的问题吗?我们的答案解决了您的问题吗?谢谢!工作得很好。结果是移动目录而不是删除它们,但我需要的是这个通用概念。缺少的反报价是关键。谢谢谢谢工作得很好。结果是移动目录而不是删除它们,但我需要的是这个通用概念。缺少的反报价是关键。谢谢谢谢工作得很好。结果是移动目录而不是删除它们,但我需要的是这个通用概念。缺少的反报价是关键。谢谢谢谢工作得很好。结果是移动目录而不是删除它们,但我需要的是这个通用概念。缺少的反报价是关键。谢谢