【已搞懂】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 -ltotal 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 -ltotal 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 -TFilesystem 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/ -ltotal 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/linuxdevlrwxrwxrwx 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 -TFilesystem 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的文件系统的。