![您能否将 Linux 中某个位置作为符号安装(即!)](https://linux22.com/image/1088829/%E6%82%A8%E8%83%BD%E5%90%A6%E5%B0%86%20Linux%20%E4%B8%AD%E6%9F%90%E4%B8%AA%E4%BD%8D%E7%BD%AE%E4%BD%9C%E4%B8%BA%E7%AC%A6%E5%8F%B7%E5%AE%89%E8%A3%85%EF%BC%88%E5%8D%B3%EF%BC%81%EF%BC%89.png)
我有一种非常奇怪的方法来管理我的服务器日志文件。我喜欢使用带有“Cat”命令的终端,通过滚动浏览服务器日志转储来查看我的服务器。
我的问题是,我可以将像!这样的符号安装为目录吗?
我知道你可以cd ~
让终端在/home/USER/
有没有办法可以cd !
访问目录,/Home/USER/SERVER/#/Dump
而不是执行cd /home/USER/SERVER/#/Dump
或执行cd ~/SERVER/#/Dump
谢谢阅读 !
答案1
我建议你为该任务使用别名。别名存储在主目录中的 .bashrc 文件中。使用命令
echo "alias cdump='cd /home/USER/SERVER/#/Dump'" >> ~/.bashrc
您可以为 .bashrc 添加一个别名。然后,您只需在终端中输入即可将工作目录更改为所需的目录cdump
。但您需要重新启动终端才能使更改可用。
请小心使用,>>
因为单个命令>
会覆盖整个 .bashrc!!
答案2
是的,您可以将文件系统挂载到任何合法的目录名,包括名称为单个符号的目录。但是,使用大多数 shell 将符号指定为文件名可能会很麻烦,因为您必须使用反斜杠对其进行转义。要回答所问的具体问题,要挂载到 !,例如:
$ cd /
$ sudo mkdir \!
$ sudo mount -t proc proc ./\!
上述操作使目录 /! 成为计算机上的另一个 proc 文件系统。引用该目录时,您需要再次转义该符号,方法是:
$ cd /\!
你需要逃避这些符号! # &按照上述方式。您不需要转义符号^,@$%但我在使用其中一些时会小心谨慎。
但是,您无法直接将目录更改为该目录,就像使用 cd ~ 直接转到主目录一样。~ 符号是 shell 中的快捷方式,而不是 OS 中的特殊符号。即使您将目录移出根目录,您仍然需要使用 / 从任何地方访问它,例如:
$ cd /^
要想做你真正想做的事,只有一种方法,但这样你就无法快速访问你的主目录。你可以使用 ~ 符号。如果我这样做:
$ mkdir /some/path/to/mountpoint
$ mount something /some/path/to/mountpoint
$ export HOME=/some/path/to/mountpoint
然后如果我使用“cd ~”,它将带我到挂载点而不是我的主目录。不过,您需要小心执行此操作,因为某些脚本可能依赖于 ~ 引用您的实际主目录。
答案3
我的偏好(在这个世界上一切都是个人的)是编辑~/.bashrc
并手动添加以下行:
# change directory aliases, cdd for AU question
alias cdd='cd /home/'$USER'/SERVER/#/Dump'
alias cdh='cd /home/'$USER
alias cdm='cd /media/'$USER'/ST9_Win7/Users/Person/Music/iTunes/'"iTunes Media"'/Music'
- 第一个别名针对您的问题--
cdd
=更改目录转储。 - 第二个别名对每个人都很方便--
cdh
=更改目录/home/用户。波浪符号(~
)对我来说太难输入了。 - 最后一个别名是我自己用的——
cdm
= 更改为音乐目录。音乐存储在 Windows 分区上,嵌套很深,因此导航到那里很麻烦。
稍后我将添加更多 cd 别名。例如,cd /var/log
将缩写为别名cdv
。
我很喜欢你这样的问题,它们能给我带来我自己可以使用的答案。谢谢 :)