其他资源

其他资源

mv我正在尝试使用之前已经无数次运行过的常规命令来重命名文件。

$ ls -l |grep "Picture 001"
-rwxrwxrwx 1 rolf rolf 657711 Feb 19 21:42 Picture 001_19.jpg
$ mv "Picture 001_19.jpg" "Picture 001_19_u.jpg"
mv: cannot move 'Picture 001_19.jpg' to a subdirectory of itself, 'Picture 001_19_u.jpg'

有人能告诉我为什么mv突然拒绝重命名此文件吗?
如何mv确定这Picture 001_19_d.jpg是目录名,而不是文件名?

我尝试使用参数运行相同的命令-T。来自mv手册页:

-T, --no-target-directory
      treat DEST as a normal file

结果完全一样。

这真是令人困惑和沮丧!

这是一个错误吗?

$ mv --version
mv (GNU coreutils) 8.30

更新

这似乎是一个错误

$ echo "blah" > tt
$ mv tt tt1
mv: cannot move 'tt' to a subdirectory of itself, '../tt'
$ mv tt ../
mv: cannot move 'tt' to a subdirectory of itself, '../tt'

mv当我在已安装的外部驱动器的可写 NTFS 分区上运行时,就会出现问题。

当我将它复制到我的桌面文件夹(该文件夹位于 Ext4 分区上)并mv在那里尝试时,它可以正常工作。

更新 2

$ sudo apt-show-versions coreutils
[sudo] password for rolf: 
coreutils:amd64/sid 8.30-2 uptodate
coreutils:i386 not installed

事实上,我似乎正在运行一个有缺陷的版本(根据这个答案)。

答案1

/bin/mv如果您正在运行 Debian sid(不稳定),那么版本8.30-2存在一个错误coreutils

此错误仅影响 Debian。[来源]

2019 年 2 月 27 日,一名 Debian 开发人员报告错误 #923420

coreutils:当文件系统不支持 RENAME_NOREPLACE 时,mv 会损坏

此类破损在Debian 的最新滚动发布

“西德”可能会发生大量更改和就地库更新。这可能会导致非常“不稳定”系统包含由于缺少库、无法满足依赖性等原因而无法安装的软件包。使用时请自行承担风险!

要解决此错误,您可以:


下面是一个使用 ZFS 后端来演示 LXD 上的错误的演示:

deltik@node53 [~]$ lxc launch -s local images:debian/sid demo
Creating demo
Starting demo
root@demo:~# cat /etc/*-release
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@demo:~# apt-cache policy coreutils
coreutils:
  Installed: 8.30-2
  Candidate: 8.30-2
  Version table:
 *** 8.30-2 500
        500 http://deb.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
root@demo:~# df -hT
Filesystem                Type      Size  Used Avail Use% Mounted on
rpool/lxd/containers/demo zfs       379G  195M  378G   1% /
none                      tmpfs     492K     0  492K   0% /dev
udev                      devtmpfs  7.8G     0  7.8G   0% /dev/tty
tmpfs                     tmpfs     100K     0  100K   0% /dev/lxd
tmpfs                     tmpfs     100K     0  100K   0% /dev/.lxd-mounts
tmpfs                     tmpfs     7.8G     0  7.8G   0% /dev/shm
tmpfs                     tmpfs     7.8G  8.1M  7.8G   1% /run
tmpfs                     tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                     tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
root@demo:~# echo "blah" > tt
root@demo:~# mv tt tt1
mv: cannot move 'tt' to a subdirectory of itself, 'tt1'

其他资源

答案2

我在 Windows(Windows 主机、Windows 客户机)上的 Docker 容器中看到同样的错误,使用 msys2 在客户机中安装主机目录。它有 GNU coreutils 8.32,所以可能不是同一个问题——是新问题吗?

相关内容