【问题标题】:unix shell - ls -d $PWDunix shell - ls -d $PWD
【发布时间】:2020-07-14 21:20:44
【问题描述】:

我想创建一个名为 Ls 的别名,当我尝试列出特定文件时,它会打印出当前目录和文件名

unix> ls a.txt
unix> a.txt -> print out

I want it to print out the directory name too:

unix> /hier1/hier2/hier3/a.txt

When I do 'ls -d $PWD/a.txt'
it prints out

unix> /hier1/hier2/hier3/a.txt

When I make an alias of the above

alias Ls 'ls -d $PWD', it prints out the as below with a space.

unix> Ls a.txt
unix> /hier1/hier2/hier3 a.txt 

How do I get the below print without the space and with a slash as below:

unix> Ls a.txt
unix> /hier1/hier2/hier3/a.txt -> THIS IS WHAT I WANT

【问题讨论】:

  • 请以tour 开头并阅读How to Ask。然后,阅读您应用的标签的描述,了解您的问题本身存在缺陷的原因。
  • 错误的站点。您正在寻找Unix & Linux。本网站是针对与编程相关的问题,而不是一般的计算机或操作系统支持。
  • 我认为您最好编写一个脚本来执行此操作,而不是尝试使用别名来执行此操作。此外,编写脚本应该是本网站的主题。
  • 是的,编写一个脚本,或者将您的脚本声明为.bashrcbash 来源的其他. 文件之一中的函数。您必须欺骗别名以使用可变参数,并且当您决定“哦,我需要另外一个功能才能真正快乐”时,无论如何您都需要编写一个函数。 (人们从哪里一直认为别名是第一行解决方案?!;-)! ) .祝你好运。

标签: shell unix ls


【解决方案1】:

你最好做一个函数。进入你的 ~/.bashrc 文件并使用 export 命令创建函数:

function Ls(){
    p="$PWD" 
    out="${p}/${1}"
    echo $out
}

然后保存退出:wq,输入:

source ~/.bashrc 

命令应该准备好了

如果您使用的是 zsh,则添加:

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

到 ~/.zshrc 文件。

【讨论】:

    【解决方案2】:
    alias Ls="echo -n $PWD/; ls $1"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 2013-08-15
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多