Questions tagged «filenames»

文件名是用于在给定文件系统上唯一标识文件的名称。

2
关于Linux上文件系统字符编码的几个问题
由于Windows(GBK编码)和Linux(UTF-8编码)之间有很多文件交换工作,因此它很容易遇到字符编码问题,例如: 在Windows系统上其名称包含中文字符的zip / tar文件,在Linux系统上将其解压缩/取消存储。 运行迁移的旧版Java Web应用程序(在Windows系统上设计,使用JSP中的GBK编码),该应用程序将以GBK编码的文件写入磁盘。 ftp在Windows FTP服务器和Linux客户端之间获取/输入以GBK编码的文件。 在Linux中切换LANG环境。 前面提到的常见问题是文件定位/命名。谷歌搜索后,我收到了一篇文章《在Linux中使用Unicode》 http://www.linux.com/archive/feed/39912,它说: 操作系统和许多实用程序都没有意识到文件名中的字节代表什么字符。 因此,可能会有2个使用不同编码的English.txt文件: [root@fedora test]# ls ???? 中文 [root@fedora test]# ls | iconv -f GBK 中文 涓iconv: illegal input sequence at position 7 [root@fedora test]# ls 中文 && ls $'\xd6\xd0\xce\xc4'|iconv -f gbk 中文 中文 问题: 是否可以配置linux文件系统使用固定字符编码(例如NTFS内部使用UTF-16)来存储文件名,而不管LANG / LC_ALL环境如何? 或者,我真正想问的是:是否可以让$'\xe4\xb8\xad\xe6\x96\x87.txt'zh_CN.UTF-8环境中的文件名中文.txt($'\xd6\xd0\xce\xc4.txt')和zh_CN.GBK环境中的文件名中文.txt()引用同一文件? 如果它不是可配置的,那么是否有可能修补内核以在文件系统和当前环境之间转换字符编码(只是一个问题,不是请求实现)?并在可能的情况下影响多少性能?



2
文件描述符与文件名
我想知道文件描述符和文件名之间有什么区别和关系。它们都用来访问文件吗?如果是,是否以同样的方式? 例如/dev/fd/0,/dev/stdin和/proc/self/fd/0对所有链接/dev/pts/2。这是四个文件描述符还是文件名?

3
如何通过使用find unix命令获取绝对路径
如何使用find命令获取绝对路径。 实际上我正在运行以下脚本: find . -size +20M | while read a do i=$(echo $a | sed 's:/: :g') echo $a; j=($i) fileName=${j[${#j[@]}-1]} userName=${j[${#j[@]}-3]} done 但是这里变量$a显示从开始的路径,./Downloads/filename但我想要从的绝对路径/。


1
为什么我的文件名在Linux中看起来是“普通”的,而在Windows中却不是远程的?
与同事一起工作时,我发现了一个奇怪的问题,似乎与编码有关。我们正在与具有足够简单的文件名,如一些图像时city.gif或wine.gif,但正如人们所预料的事情开始使用特殊字符,例如当更多复杂的é,ë,à。我们还正在处理具有这些字符的荷兰数据,例如café(pub)。(我们无法控制文件的来源。)这是开始出现问题的地方。以下文件名仅是示例。带有变音符号的其他字符也会出现此问题。 café-2.png cafetaria.png café.png 第一项和最后一项应在其中带有重音符号e(重音aigu,é)。这样便可以在Linux(CentOS 6和7)的终端上运行它ls。但是Windows来了!(使用Windows 10,64位。)在Windows上通过SSL与我们的服务器通过SSL连接,然后调用时ls,上面的列表如下所示: café-2.png cafetaria.png caf▒.png 如您所愿,第一行仍带有重音符号e é,而第三行则没有。相反,我看到了▒这个字符-它是medium shadeunicode(十进制数为1818)。这本身很奇怪。但是,当我通过SFTP和Filezilla(仍在Windows上)连接时,会看到以下内容: café-2.png cafetaria.png café.png 因此,现在情况有所好转:在第一个中,é已更改为顺序,在第三个中,一切都很好。我在这里发现,这很可能是由于Latin-1 <-> UTF-8转换出错(如果我正确的话)。但这不可能是所有发生的事情,对吧? Linux显示了我们所期望的一切,Windows显示了似乎不一致的行为,具体取决于我们查看文件名的方式(SSH(putty)或SFTP(filezilla))。有没有一种方法可以“标准化”这些文件名(即编辑它们),并确保每个操作系统上的文件名都相同;或至少是一致的,如果是的话,如何?UTF-8是我们选择的编码。 即使这可能只是一个美学问题,但事实并非如此。尝试从Linux服务器通过Windows中的SFTP下载内容时,我无法下载出现上述问题的文件。Filezilla将抛出诸如的错误Can't download file café-2.png: café-2.png does not exist on the server。在我看来,Filezilla会读取目录和文件名,以某种编码对其进行解释,然后将GET请求及其解释发送给服务器,但是该解释与Linux文件名不同,因此找不到该文件。 最终,如果有解决方案,那将是很好的,尽管我也对为什么会发生这种情况感兴趣。是否因为映像文件可能是在不同的操作系统上创建而发生的?是因为Linux服务器将其解释为错误而发生,还是Windows混乱了?希望有一种解决方案,我们可以联系我们的系统管理员,要求他们打开服务器配置中的开关,但恐怕并非如此简单。




3
使用Samba安装上的奇怪名称重命名文件
我想将具有奇怪名称的文件重命名为合理的名称,但是我无法:/ $ mv *_000c.jpg 000c.jpg mv: cannot move '?j?Z?R?C1_000c.jpg' to '000c.jpg': No such file or directory 我已经尝试过使用互联网上一些地方推荐的索引节点号: $ ls -il *000c.jpg ls: '?j?Z?R?C1_000c.jpg': No such file or directory 213915 -rw-r--r-- 1 wolf wolf 794655 Jul 21 2012 '?j?Z?R?C1_000c.jpg' $ find . -inum 213915 -print0 | xargs -0 -I '{}' mv …

3
查找以数字结尾的文件
我正在尝试制作一些备份脚本,因为日志文件越来越大。我现在正在处理当前文件(例如中的secure文件/var/log/)并从该文件中删除内容。但是有些文件的名称如:secure.1,secure.2我希望对所有这些文件进行计数,如果数量更大,则2可以全部归档。我找不到找到此文件或计数它们的方法。我想到的第一个想法是: find /var/log/ -name *.1 | wc -l 1因为仅有一个文件,它将始终打印secure.1。我怎样才能像在for循环中那样在其中可以指定一定范围内的数字,例如{1..5}或类似数字。有没有一种方法可以分隔此文件,并使它们成为一个文件,然后对其进行备份或删除,或者执行任何操作……或者首先,我如何才能找到所有以数字结尾的数字。

3
如何给`ls`文件列表中的隐藏文件上色?
LS_COLORS环境变量使您可以为GNU coreutil的ls命令确定不同文件类型的颜色,例如目录,常规文件,链接等。我认为点文件被认为是Linux文件类型的变体,而不是单独的类型,因此没有为它们指定显示颜色的选项。 您是否可以通过其他任何方式使ls列表显示不同颜色的隐藏文件?
10 ls  filenames  colors 

2
路径语法规则
我正在编写一个用于处理Unix路径字符串的库。在这种情况下,我需要了解大多数人不会担心的语法的一些晦涩之处。 例如,作为最好的,我可以告诉大家,似乎foo/bar并foo//bar都指向同一个地方。 同样,~通常代表用户的主目录,但是如果它出现在路径中间怎么办?那会发生什么呢? 如果我要编写能够正确处理所有可能情况的代码,则需要回答这些以及其他几十个晦涩的问题。有人知道一个明确的参考资料来解释该材料的确切语法规则吗? (不幸的是,搜索“ Unix路径语法”之类的词时,讨论该$PATH变量的页面只有一百万页。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.