使用 bash 命令删除除少数文件外的所有文件
Delete all files except a few using bash command
我有一个包含许多不同格式文件的目录。我想知道如何删除所有具有特定格式的文件(比方说 *.dat),除了一些相同格式的文件(例如 A.dat 和 B.dat)。请指教!
我会写一个小脚本(作为 command-line one-liner 它有点太大了):
#!/bin/sh
for f in *.dat; do
case $f in
(A.dat|B.dat)
;; # do nothing
(*)
rm -- "$f";; # remove the file
esac
done
作为替代方案,您可以使用交互式 rm -i *.dat
询问每个文件是否应删除。对不再需要的文件回答 y
,对 A.dat
和 B.dat
.
回答 n
zsh 和 bash 等现代 shell 也为您的问题提供了强大的 globbing 功能。我建议您阅读他们的手册页,这将帮助您成为一名精通 shell 大师。
我有一个包含许多不同格式文件的目录。我想知道如何删除所有具有特定格式的文件(比方说 *.dat),除了一些相同格式的文件(例如 A.dat 和 B.dat)。请指教!
我会写一个小脚本(作为 command-line one-liner 它有点太大了):
#!/bin/sh
for f in *.dat; do
case $f in
(A.dat|B.dat)
;; # do nothing
(*)
rm -- "$f";; # remove the file
esac
done
作为替代方案,您可以使用交互式 rm -i *.dat
询问每个文件是否应删除。对不再需要的文件回答 y
,对 A.dat
和 B.dat
.
n
zsh 和 bash 等现代 shell 也为您的问题提供了强大的 globbing 功能。我建议您阅读他们的手册页,这将帮助您成为一名精通 shell 大师。