我想使用mv
移动文件名中不包含字母S
的文件。在mv手册中找不到任何内容。也许与find
或grep
组合?它必须区分大小写。
输入:
file1
fileS1
file2
fileS2
要移动的文件:
file1
file2
答案 0 :(得分:2)
如果启用扩展的globing (默认情况下处于关闭状态),则无需任何其他软件即可在纯Bash中进行选择:
shopt -s extglob
mv !(*S*) /target/dir
有关更多信息,请在extglob
手册页中搜索bash(1)
(该信息位于第二个匹配项)。
答案 1 :(得分:1)
例如,您可以将find
与-not
标志一起使用。
find /path/to/source/dir -type f -not -name '*S*' \
| xargs mv -t /path/to/target/dir
答案 2 :(得分:1)
您还可以使用ls
中的“忽略模式”开关,例如:
mv $(ls -I '*S*') /target/dir
答案 3 :(得分:0)