Tro*_*ike 103 linux bash shell command
它必须是一个受欢迎的问题,但我找不到答案.
如何通过*包括隐藏文件将所有文件移动到父目录,如下所示:
mv /path/subfolder/* /path/
这会将所有文件移动到父目录,但不会移动隐藏文件.怎么做?
fed*_*qui 189
您可以在UNIX和Linux的答案中找到一套全面的解决方案,如何将所有文件(包括隐藏)从一个目录移动到另一个目录?.它显示了Bash,zsh,ksh93,standard(POSIX)sh等的解决方案.
您可以将这两个命令一起使用:
mv /path/subfolder/* /path/   # your current approach
mv /path/subfolder/.* /path/  # this one for hidden files
或者全部在一起(感谢pfnuesel):
mv /path/subfolder/{.,}* /path/
其中扩展为:
mv /path/subfolder/* /path/subfolder/.* /path/
(例如:echo a{.,}b扩展为a.b ab)
请注意,这将显示一些警告:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
只是忽略它们:发生这种情况是因为/path/subfolder/{.,}*还扩展为/path/subfolder/.和/path/subfolder/..目录和父目录(请参阅"."和".."在文件夹中的含义?).
如果您只想复制,可以使用以下内容:
cp -r /path/subfolder/. /path/
#                     ^
#                     note the dot!
这将复制所有正常和隐藏文件,因为/path/subfolder/.扩展为"来自此目录的所有内容"(来源:如何使用cp复制以包含隐藏文件和隐藏目录及其内容?)
dev*_*ull 28
这会将所有文件移动到父目录,但不会移动隐藏文件.怎么做?
你可以打开dotglob:
shopt -s dotglob               # This would cause mv below to match hidden files
mv /path/subfolder/* /path/
为了关闭dotglob,你需要说:
shopt -u dotglob
Van*_*aij 27
我认为这是最优雅的,因为它也没有尝试移动..:
mv /source/path/{.[!.],}* /destination/path
另一种更简单的解决方案是使用rsync实用程序:
sudo rsync -vuar --delete-after --dry-run path/subfolder/ path/
注意:以上命令将显示要更改的内容。要执行实际更改,请删除--dry-run.
优点是原始文件夹 ( subfolder) 以及命令的一部分将被删除,并且在使用mv此处的示例时,您仍然需要清理文件夹,更不用说在一个单独的文件中覆盖隐藏和非隐藏文件的额外麻烦了图案。
此外,rsync还提供了在远程设备之间复制/移动文件的支持,并且可以确保文件完全按照原来的样子进行复制 ( -a)。
使用的-u参数将跳过现有的较新文件,-r递归到目录并-v会增加详细程度。
通过将该find命令与该mv命令结合使用,可以防止该mv命令尝试移动目录(例如..和.)和子目录。这是一种选择:
find /path/subfolder -maxdepth 1 -type f -name '*' -exec mv -n {} /path \;
提供的其他一些答案存在问题。例如,以下每个命令都会尝试从源路径移动子目录:
1) mv /path/subfolder/* /path/ ; mv /path/subfolder/.* /path/
2) mv /path/subfolder/{.,}* /path/ 
3) mv /source/path/{.[!.],}* /destination/path
此外,2) 包括 . 和 .. 文件以及 3) 丢失诸如 ..foobar、...barfoo 等文件。
您可以使用 ,mv /source/path/{.[!.],..?,}* /destination/path它将包含 3) 中遗漏的文件,但它仍会尝试移动子目录。将find命令与mv我上面描述的命令一起使用可以消除所有这些问题。
| 归档时间: | 
 | 
| 查看次数: | 91542 次 | 
| 最近记录: |