将目录中存在的所有具有相同字母/单词的文件移动到另一个目录

将目录中存在的所有具有相同字母/单词的文件移动到另一个目录
rda@MacBook-Pro X.WORK % ls

Assignment1.file Sec3           moremumbo.woot
FICTION.bak     Test-1.bak      mumble.txt
File-1.bat      Test-1.txt      mumbo.file
FundaOfIT.txt       Text-1.xtxt     myunix.txt
MyFave.txt      Text-2.xtxt     thistle.bak
Sec1            coursetext
Sec2            dooda.text

我需要将当前目录“X.WORK”中以字母“t”结尾的所有文件移动到子目录Sec3,如何使用 mv 命令将它们全部移动到一起?

如果它看起来确实很乱,我很抱歉,这是我的第一个问题,由于某种原因我无法让代码看起来更好更整洁。

答案1

这是基本的 shell 通配符:

mv ./*t Sec3/

贝壳 (不是 mv- 这是一个非常重要的区别,非常值得记住)将其扩展为:

mv ./moremumbo.woot ./mumble.txt ./Test-1.txt ./FundaOfIT.txt ./Text-1.xtxt ./myunix.txt ./MyFave.txt ./Text-2.xtxt ./coursetext ./dooda.text Sec3/

(尽管可能已排序,但不是按该顺序。尝试使用echols -ld代替以mv查看排序顺序)

./顺便说一句,即使没有必要,使用前缀也是个好习惯。这是为了防止不幸命名的文件被意外(或恶意)解释为选项mv。例如,如果-t目录中有文件名, *t(没有./前缀)将扩展以将其包含在参数列表中,并将mv其解释为选项,而不是文件名。对于 GNU mv-t( 的缩写--target-directory)将下一个参数视为要将文件移动到的目标目录(它允许您将目标目录其他参数,而不是在它们之后)。

/在目录名称中使用尾随也是一个好习惯。当您打算将文件移动或复制(或 rsync 等)到目录中时,它可以防止意外覆盖或创建文件。

相关内容