您能否将 Linux 中某个位置作为符号安装(即!)

您能否将 Linux 中某个位置作为符号安装(即!)

我有一种非常奇怪的方法来管理我的服务器日志文件。我喜欢使用带有“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

我很喜欢你这样的问题,它们能给我带来我自己可以使用的答案。谢谢 :)

相关内容