我厌倦了 Windows 的不断更新,导致我的程序无法使用。在尝试了 Linux Lite 之后,我现在在戴尔笔记本电脑上运行 Ubuntu,因为它是受支持的发行版。我并不笨,我可以用 C 语言编程,而且我记得我在 SCO 时代学到的文件权限(用户组所有人)之类的东西。然而,我尝试做的一些事情并没有达到我想象的效果。
我在文件保存对话框中,我想将文件保存到父目录而不更改当前工作目录,因此我尝试在文件名前加上“点点反斜杠”来查看它是否可行(PS-DOS 的美好旧时光中的一些东西)。
嗯,你知道发生了什么。它隐藏了当前目录中的文件。
如果我不想更改工作目录,那么有没有办法不在对话框中输入完整路径来引用父目录?
答案1
反斜杠在 Linux 中有另一层含义:它转义特殊字符的特殊含义,以便使用文字字符。例如.
可以表示当前目录或在某些情况下表示“任何单个字符”。\.
表示文字点。在普通字符(例如 ASCII 字母)前,反斜杠没有区别,除非该字符还用于表示其他内容(例如\t
制表符和\n
换行符)。当字符没有其他含义时,例如a
,则转义它无效:\a
是a
。
所以
touch ..\asdf
将创建隐藏文件..asdf
。(文件名开头有一个点即可隐藏它。)
Linux 使用正斜杠来分隔路径中的目录名和文件名。
touch ../asdf
asdf
将在父目录中创建该文件。
答案2
您可以使用 dirname 函数获取父目录。例如:
parentdir=$(dirname `pwd`)
通过测试echo $parentdir
如果没有看到您的脚本,我无法建议如何使用此功能。