Frx*_*rem 13
如果你想,除了从目录都移动$SOURCE_DIR
到$TARGET_DIR
,你可以使用这个命令:
find "$SOURCE_DIR" -maxdepth 1 -not -type d -exec mv -t "$TARGET_DIR" -- '{}' +
Run Code Online (Sandbox Code Playgroud)
详细解释:
find
: find 搜索目录中的文件$SOURCE_DIR
: 要搜索的目录-maxdepth 1
: 不要看子目录里面-not -type d
: 忽略目录
-type f
如果您只想复制严格意义上的文件,您也可以使用,但我更喜欢上面的内容,因为它还可以捕获既不是文件也不是目录的所有内容(特别是符号链接)-exec mv -t "$TARGET_DIR" -- '{}' +
:运行所有匹配文件mv -t "$TARGET_DIR" -- FILES...
所在的命令FILES...
(感谢@DavidFoerster)我认为您只想 mv 您的文件。首先转到您的目录并使用此命令,将 $TARGET 替换为您的目标目录路径。如果要复制文件,请替换mv
为cp
.
find . -type f -exec mv {} $TARGET \;
Run Code Online (Sandbox Code Playgroud)
如果我解释一下,这find . -type f
意味着选择所有文件并-exec mv {} $TARGET \;
意味着mv
对所有选定项目执行命令。
上一个答案有一个错误..它也mv
包含子目录中的所有文件。快速修复是使用-maxdepth 1
。然后它不会mv
在子目录中递归文件。下面是正确的..
find . -maxdepth 1 -type f -exec mv {} $TARGET \;
Run Code Online (Sandbox Code Playgroud)