有没有可能,如果我有这个:
/folder1/folder2/folder3
/folder1/folder2/file1.txt
Run Code Online (Sandbox Code Playgroud)
我可以删除 folder2 但保留其内容吗?
所以结果看起来像:
/folder1/folder3
/folder1/file1.txt
Run Code Online (Sandbox Code Playgroud)
Rin*_*ind 16
cd /folder1/folder2/
mv * ../
cd ../
Run Code Online (Sandbox Code Playgroud)
现在检查文件夹的内容:
ls
Run Code Online (Sandbox Code Playgroud)
然后使用此命令删除目录。它是完全安全的,因为它只会删除空目录:
rmdir folder2/
Run Code Online (Sandbox Code Playgroud)
我认为您实际上不需要删除某些内容……只需将其移开即可。
mv /folder1/folder2/* /folder1/
rmdir /folder1/folder2/
Run Code Online (Sandbox Code Playgroud)
第一个命令将内容移动到父目录,如果目录为空,第二个命令将删除该目录。这不会移动隐藏/点文件。如果您还想移动隐藏文件,则需要:
mv /folder1/folder2/{*,.*} /folder1/
rmdir /folder1/folder2/
Run Code Online (Sandbox Code Playgroud)
或在 bash 中使用 dotglob 选项。如果你没有点文件,它会导致no matches found: dir1/dir2/.*
bash 并且命令会失败。你也可以忽略:
mv: cannot move ‘folder1/folder2/..’ to ‘folder1/..’: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
由于 bash 传递.
和..
到mv
.