如何移动与文件夹同名的文件
例如:
#ls
total 2
.
..
-rwxr-xr-x 1 root root 230 Jan 16 10:39 food <file to move>
drwx--x--x 12 root root 4096 Jan 16 11:25 food <directory>
我想将食物移入食物目录。
最终输出应该是food/food.ini
当我使用时#mv food food/food.ini
出现错误
mv: cannot move `food' to a subdirectory of itself, `food/food.ini'
更新:
该文件使用以下命令创建:
cp foods1 ../food
其中食物文件夹位于父目录中。
我可以使用 webmin 移动。但是尝试使用 vi 编辑器编辑时该文件不存在。
答案1
您可以尝试这样的事情:
find ./ -name food -type f -exec mv {} ./food/{} \;
答案2
我无法重复您在同一文件夹中创建同名文件和目录的方法,但您可以通过 find 命令之类的方法使用文件的 inode 编号(而不是名称)移动文件来清理这种情况。
[jpaulus@localhost test]$ ls -lhi
total 4.0K
26086760 drwxrwxr-x 2 jpaulus jpaulus 4.0K Jan 15 23:19 test
26086768 -rw-rw-r-- 1 jpaulus jpaulus 0 Jan 15 23:19 test1
find . -inum 26086760 -exec mv {} new_directory/new_filename \;
[jpaulus@localhost test]$ ls -lh
total 0
-rw-rw-r-- 1 jpaulus jpaulus 0 Jan 15 23:19 test1