小编Jon*_*nik的帖子

ls -l 中的@ 是什么意思?

我正在使用 Mac OSX。当我打字时,ls -l我看到类似的东西

drwxr-xr-x@ 12 xonic  staff    408 22 Jun 19:00 .
drwxr-xr-x   9 xonic  staff    306 22 Jun 19:42 ..
-rwxrwxrwx@  1 xonic  staff   6148 25 Mai 23:04 .DS_Store
-rw-r--r--@  1 xonic  staff  17284 22 Jun 00:20 filmStrip.cpp
-rw-r--r--@  1 xonic  staff   3843 21 Jun 21:20 filmStrip.h
Run Code Online (Sandbox Code Playgroud)

@的意思是什么?

osx ls permissions

150
推荐指数
2
解决办法
5万
查看次数

有没有办法让“mv”静默失败?

mv foo* ~/bar/如果没有匹配的文件,则类似命令会在 stderr 中生成此消息foo*

mv: cannot stat `foo*': No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,在我正在处理的脚本中,这种情况完全没有问题,我想从我们的日志中省略该消息。

有没有什么好的方法可以让你mv保持安静,即使什么都没有移动?

bash mv

76
推荐指数
4
解决办法
9万
查看次数

基于环境变量的条件赋值

在 bash 脚本中,我分配了一个局部变量,以便该值取决于外部的全局环境变量 ( $MYAPP_ENV)。

if [ "$MYAPP_ENV" == "PROD" ]
then
    SERVER_LOGIN=foobar123@prod.example.com
else
    SERVER_LOGIN=foobar987@test.example.com
fi
Run Code Online (Sandbox Code Playgroud)

是否有更短(但干净)的方式来编写上述作业?(大概使用某种条件运算符/内联 if。)

bash shell-script environment-variables assignment

19
推荐指数
3
解决办法
5万
查看次数

在 Bash if 条件中,如何检查是否存在与简单通配符表达式匹配的任何文件?

愚蠢的是,我一直在使用这样的条件作为脚本的一部分:

if [ $(ls FOO* 2> /dev/null) ] # if files named "FOO*" were downloaded 
then
    echo "Files found" 
    # ... process and email results
else
    echo "Not found"
    # ... email warning that no files were found (against expectations)
fi
Run Code Online (Sandbox Code Playgroud)

这适用于零个和一个名为 的文件FOO*,但如果有多个则失败。从日志中,我发现了几个不同的错误消息:

[: FOO_20131107_082920: unary operator expected
[: FOO_20131108_070203: binary operator expected
[: too many arguments
Run Code Online (Sandbox Code Playgroud)

我的问题是:在 Bashif条件下,检查名称以 开头的一个或多个文件是否FOO存在的正确方法是什么?

GNU bash,版本 4.2.25(1)-release (x86_64-pc-linux-gnu)

ls bash wildcards files

10
推荐指数
2
解决办法
4万
查看次数

Bash 中 Mercurial 的 Tab 完成?

在命令行上使用 Subversion,它可以智能地完成可用的子命令等:

$ svn c<tab>
cat         checkout    cl          co          copy        
changelist  ci          cleanup     commit      cp  
Run Code Online (Sandbox Code Playgroud)

另一方面,Mercurial 似乎没有制表符完成功能,至少开箱即用:

$ hg c<tab> 
[nothing happens]
Run Code Online (Sandbox Code Playgroud)

Mercurial 的 Bash 补全是否可用?让它工作的最简单方法是什么?我在 Ubuntu 11.04 上。

bash autocomplete mercurial

7
推荐指数
3
解决办法
2619
查看次数