我正在尝试编写一个命令,用于mv
将文件向上移动两个目录级别。
因此,如果文件夹顺序如下所示:~/Test/2020-08-01/001/002/file.txt
,我想file.txt
从一个目录移动002
到另一个目录2020-08-01
。
当我从主目录中键入此命令时,mv ~/Test/2020-08-01/001/002/* ../..
我收到一条错误消息:mv: cannot move '/home/user/Test/2020-08-01/001/002/file1.txt' to '../../file1.txt': Permission denied
我不明白为什么我收到“权限被拒绝”错误,并且我不认为它与 sudo 相关。我也不想尝试 sudo 以防我搞砸了。
如果有人有任何见解请告诉我。谢谢。
答案1
问题是../..
你的命令是相对于你的当前的目录。如果您的当前目录是/home/user
,则../..
指目录层次结构的根目录(非特权用户无法写入的位置)。
file.txt
要从移动~/Test/2020-08-01/001/002
到~/Test/2020-08-01
,请使用
mv ~/Test/2020-08-01/001/002/file.txt ~/Test/2020-08-01
如果您想使用相对目录路径,请确保您首先位于正确的目录中,然后执行移动:
cd ~/Test/2020-08-01/001/002
mv file.txt ../..
或者,
cd ~/Test/2020-08-01
mv 001/002/file.txt .
...或其某种组合。