这一定是个很受欢迎的问题,但我找不到答案.
如何通过*将所有文件(包括隐藏文件)移动到父目录,如下所示:
mv /path/subfolder/* /path/
这将像预期的那样将所有文件移动到父目录,但不会移动隐藏文件.怎么做?
这一定是个很受欢迎的问题,但我找不到答案.
如何通过*将所有文件(包括隐藏文件)移动到父目录,如下所示:
mv /path/subfolder/* /path/
这将像预期的那样将所有文件移动到父目录,但不会移动隐藏文件.怎么做?
您可以在UNIX&;中找到一套全面的解决方案;Linux对How do you move all files (including hidden) from one directory to another?的回答.它展示了Bash、zsh、ksh93、标准(POSIX)sh等方面的解决方案.
您可以同时使用这两个命令:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
或者加在一起(thanks 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/..
,这是目录和父目录(参见What do “.” and “..” mean when in a folder?).
如果你只想复制,你可以使用:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
这将复制所有文件,包括普通文件和隐藏文件,因为/path/subfolder/.
扩展为"来自此目录的所有内容"(来源:How to copy with cp to include hidden files and hidden directories and their contents?)