为什么我无法重命名文件夹或使用特殊字符创建文件夹?

时间:2015-12-31 09:05:46

标签: bash character special-characters

我想重命名文件夹或用问号的特殊字符创建它(?)

我可以创建一个名为' ????????"的文件夹。通过gnome文件管理器

enter image description here

但是我无法通过bash和命令行

创建相同的文件夹

为什么我可以?

  

我可以通过可视文件管理器创建任何名称的文件夹,但是bash可以创建它。

enter image description here

root@k-five:/media/shu/winlin#
root@k-five:/media/shu/winlin# mkdir test
root@k-five:/media/shu/winlin# cd test/
root@k-five:/media/shu/winlin/test# touch abc
root@k-five:/media/shu/winlin/test# ls
abc
root@k-five:/media/shu/winlin/test# mkdir ???
mkdir: cannot create directory ‘abc’: File exists
root@k-five:/media/shu/winlin/test# mkdir ????
mkdir: cannot create directory ‘????’: Invalid argument
root@k-five:/media/shu/winlin/test# mkdir '????'
mkdir: cannot create directory ‘????’: Invalid argument
root@k-five:/media/shu/winlin/test# mkdir '\?\?\?\?'
mkdir: cannot create directory ‘\\?\\?\\?\\?’: Invalid argument
root@k-five:/media/shu/winlin/test# mkdir \?\?\?\?
mkdir: cannot create directory ‘????’: Invalid argument
root@k-five:/media/shu/winlin/test# mkdir "\?\?\?\?"
mkdir: cannot create directory ‘\\?\\?\\?\\?’: Invalid argument
root@k-five:/media/shu/winlin/test#

  

对不起大家,我犯了一个错误。我的问题解决了:

sudo mount -t vfat /dev/sda4 /media/$USER/fat32 -o    uid=1000,gid=1000,umask=022 

所以我将root的所有权更改为我,我可以在没有sudo的情况下运行命令,但我无法创建" ??????"文件夹名称,因为它的vFAT分区&那个是NTFS

如果您有FAT分区,请不要尝试创建具有特殊字符的文件夹的名称。结束:))))))))

3 个答案:

答案 0 :(得分:3)

因为你的目录中的文件名中有一个字符数相同的文件,你忘了逃避wildcard characters

mkdir '??????'

答案 1 :(得分:2)

也许您在根文件夹中忘记输入sudo命令 对于root用户权限?

sudo mkdir ?????

答案 2 :(得分:1)

我尝试重新创建场景,它就像bash中的魅力一样。

  1. 创建了一个测试目录

    [root@localhost ~]# cd test/
    
  2. 创建了一个空文件

    [root@localhost test]# touch mysql
    [root@localhost test]# ls
    mysql
    
  3. 现在我尝试创建一个名为?????的文件,但它不允许我这样做。通过查看错误消息,很明显它抱怨文件存在错误消息。我有一个mysql文件,其文件名中的字符数与我要创建的文件的字符数相同。

    [root@localhost test]# mkdir ?????
    mkdir: cannot create directory ‘mysql’: File exists
    
  4. 让我们通过将文件名放在单引号

    中来创建文件夹
    [root@localhost test]# mkdir '?????'
    
  5. 让我们验证一下。此时间文件夹已成功创建。

    [root@localhost test]# ls
    ?????  mysql
    
  6. 您可以尝试转义特殊字符以创建文件/文件夹,如下所示

    [root@localhost test]# mkdir \?\?\?\?\?\?\?
    [root@localhost test]# ls
    ?????  ???????  mysql