最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已搞懂】cp: cannot create symbolic link XXX Operation not permitted + 用mount或 df -T可查得某个文件夹是什么文件系统的

工作和技术 crifan 11429浏览 0评论

【已搞懂】cp: cannot create symbolic link XXX Operation not permitted + 用mount或 df -T可查得某个文件夹是什么文件系统的

【背景】

在Linux下,将某个目录及其下所有文件拷贝到另外一个目录,结果拷贝过程中出错:

cp: cannot create symbolic link `/mnt/linuxdev/Focus/carifan/kernel/2007R1/Bfin_425/linux-2.6.x/Focus/include/asm’: Operation not permitted

【解决过程】

网上搜了下,得知,此处不能创建符号链接,主要有两种可能,

1.没有权限

此处已经保证包括的源和目的地,都是由权限操作的,排除此原因。

2.目标文件系统不支持符号链接

此处经过去查看目标文件夹,是什么文件系统的,查得是smbfs:

[e516537@RD-Linux-2420 ~]$ ls /mnt/linuxdev/Focus/carifan/kernel/2007R1/Bfin_425 -l
total 4
drwxrwxrwx  1 root RandD 4096 Aug 26 01:47 linux-2.6.x
[e516537@RD-Linux-2420 ~]$ ls /usr/src/blackfin/ADI_release/kernel/2007R1/carifan_Bfin_425 -l
total 224
drwxr-xr-x   11 e516537 root  4096 Aug 23 02:52 bfin_patch
-rwxr-xr-x    1 e516537 root  4023 Aug 23 01:22 bfin-serial-handle-status.patch
。。。

drwxr-xr-x   29 e516537 root  4096 Aug 23 23:39 linux-2.6.x
-rw-r–r–    1 e516537 root 13648 Aug 23 01:36 Makefile
。。。

drwxr-xr-x   66 e516537 root  4096 Aug 23 02:56 vendors
[e516537@RD-Linux-2420 ~]$ mount
/dev/sda5 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda3 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/sdb1 on /newdisk type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
//nj55w2572/LinuxDev on /mnt/beta/linuxdev type smbfs (0)
nfsd on /proc/fs/nfsd type nfsd (rw)
/dev/sdc1 on /mnt/USBext type ext2 (rw)
[e516537@RD-Linux-2420 ~]$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda5     ext3   233918968 123418360  98618136  56% /
/dev/sda3     ext3      194449     23555    160854  13% /boot
none         tmpfs      516604         0    516604   0% /dev/shm
/dev/sdb1     ext3   307663800 177760488 114274880  61% /newdisk
//nj55w2572/LinuxDev
             smbfs   1120894976 1046872064  74022912  94% /mnt/beta/linuxdev
/dev/sdc1     ext2   961432072 961432072         0 100% /mnt/USBext

[e516537@RD-Linux-2420 ~]$ ls /mnt/ -l
total 64
drwxr-xr-x  5 root  root   4096 Feb  7  2007 beta
drwxr-xr-x  2 rddev RandD  4096 Apr 19  2006 betalinuxdev
drwxr-xr-x  3 root  root   4096 May 14  2007 bwfile02
lrwxrwxrwx  1 root  root     13 Feb  8  2007 linuxdev -> beta/linuxdev
lrwxrwxrwx  1 root  root     12 Jan  2  2007 _linuxdev.backup -> betalinuxdev
drwxr-xr-x  2 root  root   4096 Nov  7  2005 RP
drwxr-xr-x  2 root  root   4096 Jul 27  2009 test1
drwxr-xr-x  3 root  root  16384 Aug 20 00:00 USBext

 即,源文件夹是 /usr/src/blackfin/ADI_release/kernel/2007R1/carifan_Bfin_425,属于/目录下面,对应的是ext3,因此本身是支持符号链接的,而目标文件夹是 /mnt/linuxdev/Focus/carifan/kernel/2007R1/Bfin_425 属于/mnt下面的linuxdev,即/mnt/beta/linuxdev,属于smbfs,是通过SMB共享出来的目录,那对应的原始文件夹//nj55w2572/LinuxDev,看来应该是从某个Windows服务器共享过来的,文件系统是FAT或NTFS的,所以不支持符号链接。

即,此处拷贝的源文件夹是支持符号链接,要拷贝到的目标文件夹,不支持符号链接,所以才会报错。但知道原因,也无法解决,因为此处又不能更换smbfs。。。。

 

用mount或 df -T可查得某个文件夹是什么文件系统的

从上面可知,通过mount或df -T 可以查得某个文件夹是什么文件系统的:

 [e516537@RD-Linux-2420 ~]$ mount
/dev/sda5 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda3 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/sdb1 on /newdisk type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
//nj55w2572/LinuxDev on /mnt/beta/linuxdev type smbfs (0)
nfsd on /proc/fs/nfsd type nfsd (rw)
/dev/sdc1 on /mnt/USBext type ext2 (rw)
[e516537@RD-Linux-2420 ~]$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda5     ext3   233918968 123418360  98618136  56% /
/dev/sda3     ext3      194449     23555    160854  13% /boot
none         tmpfs      516604         0    516604   0% /dev/shm
/dev/sdb1     ext3   307663800 177760488 114274880  61% /newdisk
//nj55w2572/LinuxDev
             smbfs   1120894976 1046872064  74022912  94% /mnt/beta/linuxdev
/dev/sdc1     ext2   961432072 961432072         0 100% /mnt/USBext

  即,知道你要查询的文件夹,比如

  /usr/src/blackfin/ADI_release/kernel/2007R1/carifan_Bfin_425

很明显,其是属于根目录/下面的某个文件夹,

而根目录/对应的文件系统是ext3,所以,得知此文件夹是ext3的文件系统的。

转载请注明:在路上 » 【已搞懂】cp: cannot create symbolic link XXX Operation not permitted + 用mount或 df -T可查得某个文件夹是什么文件系统的

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.160 seconds, using 22.11MB memory