Questions tagged «filenames»

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

3
了解Unix文件名编码
我很难理解文件名编码的工作方式。在unix.SE上,我发现矛盾的解释。 文件名存储为字符 引用另一个答案: 关于Linux上文件系统字符编码的几个问题 正如您在问题中提到的[…],UNIX文件名只是一个字符序列;内核对编码一无所知,而编码完全是用户空间(即应用程序级)的概念。 如果文件名存储为字符,则必须进行某种编码,因为最后文件名必须以磁盘上的位或字节序列结尾。如果用户可以选择任何编码来将字符映射到馈送给内核的字节序列,则可以为有效文件名创建任何字节序列。 假设以下内容:用户使用随机编码X,它将文件foo转换为字节序列α并将其保存到磁盘。另一个用户使用编码ÿ。在这种编码中,α转换为/,不允许作为文件名。但是,对于第一个用户,该文件有效。 我认为这种情况不会发生。 文件名存储为二进制Blob 引用另一个答案: 在Linux上,文件名和路径使用哪种字符集编码? 正如其他人所指出的那样,这确实没有答案:文件名和路径没有编码。OS仅处理字节序列。各个应用程序可能选择将它们解释为以某种方式进行编码,但这有所不同。 如果系统不处理字符,如何在文件名中禁止使用特定字符(例如/或NULL)?没有/ 编码就没有a的概念。 一种解释是,文件系统可以存储包含任何 字符的文件名,只有考虑到编码的用户程序才会阻止包含无效字符的文件名。反过来,这意味着文件系统和内核可以毫无困难地处理包含/。的文件名。 我也认为这是错误的。 编码在哪里进行,不允许使用特定字符的限制在哪里?


3
文件名中的换行符
我理解并接受这样的前提,即防御性1 shell脚本既审慎又从长远来看更可持续。 在这里,许多文本处理问题的答案都遵循这一原理,将非常规文件名的意外情况纳入了答案。可能包含空格,破折号和换行符。 文件名中的换行有多普遍?特别: 默认情况下,是否有任何应用程序创建包含换行符的文件名? 是否有需要创建此类文件名的情况? 还是它们主要是用户错误的实例? [1]含义规划和管理最广泛的场景和突发事件... 这个问题是由(颇具争议的)评论引起的。


3
Kernighan和Pike的挑战:如何在文件名中添加斜线?
我刚刚在Unix编程环境中遇到了以下问题,这是Kernighan和Pike撰写的关于Unix的经典著作(我在1984年第79页的ISBN:0-13-937699-2上找到了以下文本): 练习3-6。(技巧问题)如何将/放入文件名中(即/不会分隔路径的组成部分?) 我作为最终用户和程序员已经使用Linux多年了,但是我无法回答这个问题。有没有办法把斜线的文件名,这是绝对内核禁止。您可以通过块设备访问来修补文件系统,或者使用Unicode中看起来相似的字符,但这不是解决方案。 我知道Linux≠Unix,但是应该应用相同的原理,因为系统必须能够从路径中明确地提取目录层次结构。 有人知道吗,Kernighan和Pike在问这个问题时到底在想什么?答案是什么?“招数”到底是什么?或者也许原始的Unix系统只是被允许以某种方式转义这个斜线? UPD: 我就此问题联系了Brian Kernighan,他的回答是: 答案是(或者曾经是)“你不能。” 因此,蒂莫西·马丁(Timothy Martin)是对的,得到了​​绿色的勾号。

1
如何将日期和时间放在文件名中?
我正在尝试执行命令,并希望将日期和时间放在输出文件名中。 这是我要运行的示例命令。 md5sum /etc/mtab > 2016_4_25_10_30_AM.log 日期时间格式可以是带下划线的任何有意义的内容。如果无法使用AM和PM,则即使是UTC。


5
如何删除名为“>”的文件?
我正在运行一个Python脚本,该脚本发生故障并用于sudo创建名为的文件>。 我如何摆脱这个文件? 当然,当我尝试时sudo rm >,会出现错误bash: syntax error near unexpected token 'newline',因为它认为我正在尝试重定向的输出rm。 其权限为-rw-r--r--。
22 bash  quoting  filenames  rm 

3
Unix工作目录中的Tilde(〜)
因此,我在UNIX环境中工作,我注意到在工作目录(距离UNIX主目录数英里)内,有一个~。 现在,过去,我rm -rf ~从工作目录中进行操作,最终彻底删除了我的主目录,并且不得不涉及IT。 我不想再做一次。同时,我想知道 为什么~在我的工作目录中创建?保存时手指是否滑倒(:w!但是会发生什么:w~?!) 在签入之前,有一个脚本会查找p4无法识别的其他文件或文件夹,因此~可能会导致问题。那么,如何才能~从工作目录中删除,同时又不删除我的家? 我确实有一个del代替我使用的备份命令rm -rf。它只是将东西放在一个临时位置。我可以使用它并摆脱它~。但是我更想知道为什么会这样,以及如何删除它?
22 shell  filenames  home 



6
是否有一个终端应用程序允许单击文件名?
是否有终端模拟器(扩展程序或应用程序)为本地路径链接解析? 特别是当我看到类似这样的信息时: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in`perform_action_without_rescue' /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:在“ ms”中 /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:在“ ms”中 我希望能够点击: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb 打开文件。

2
为什么我不能有相同名称的文件夹和文件?
我以前从未遇到过此问题,但是由于某种原因,我无法将文件夹重命名为packages/。 结构如下: root - packages_old/ - packages 当我尝试使用Thunar重命名文件夹时,收到一条错误消息,提示该文件已存在。与mv:相同 blender iso $ mv packages_old/ packages/ mv: accessing `packages/': Not a directory 为什么我无法重命名我的文件和文件夹以使用相同的名称: root - packages/ - packages 我发誓我以前做过。

3
文件和目录命名约定
我想重构系统上的文件和目录。但是我不确定什么是最佳实践。 阅读完此问题及其答案后,我认为最重要的部分是保持一致。但是,这就是我遇到的问题。例如在根目录中,有诸如/bin和的目录/usr,它们都使用小写字母。但在我的用户目录下/home/foobar/,已经有一堆目录,如~/Pictures,~/Documents和~/Music(这是大写)! 也许这仅仅是因为我使用Ubuntu,但是什么是最佳实践?

5
从awk程序中的路径中提取文件名
我有一个awk脚本,并且已将CSV文件传递给它。 awk -f script.awk /home/abc/imp/asgd.csv 我正在做的是在中获取FILENAME script.awk。FILENAME给了我完整的路径。由于我处于awk状态,因此无法使用basename FILENAME。 print FILENAME; /home/abc/imp/asgd.csv 我已经尝试过了 script.awk echo $FILENAME | awk -F"/" '{print $NF}' 但我无法在中执行此操作script.awk。我如何进入asgd.csvawk程序?
21 awk  filenames 

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.