$ echo $(date)
Thu Jul 2 16:33:11 SGT 2015
$ echo ${date}
$ name=foo
$ echo $(name)
ksh: name: not found
$ echo ${name}
foo
Run Code Online (Sandbox Code Playgroud)
似乎 ${variable} 与 $variable 相同。而 $() 是执行命令。那么为什么要使用 ${} 呢?
我发现自己-v越来越少地在许多应用程序中使用该标志(尤其是对于像tar和 之类的琐碎事物cp)。但是,当我解压缩一个大文件时,它会比我不使用-v标志时花费更长的时间。
我认为这是因为终端必须处理文本,而我正在填充它可能拥有的任何缓冲区。但我的问题是,这是否会使应用程序实际运行速度变慢,或者它是否在相同的时间内完成,而我所看到的是终端试图赶上?
请找到我的操作系统详细信息:
$ uname -a
AIX xxyy 1 6 000145364C00
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令来获取 gzip 存档中文件的大小:
$ gzip -l mycontent.DAT.Gz
compressed uncompr. ratio uncompressed_name
-1223644243 1751372002 -75.3% mycontent.DAT.Gz
Run Code Online (Sandbox Code Playgroud)
不知道如何解释解压后的大小。压缩文件大小接近 4 GB。
因此,我尝试了此选项以捕获正确的数据:
$ zcat mycontent.DAT.Gz | wc -c
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
mycontent.DAT.Gz.Z:A file or directory in the path name does not exist.
0
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何在不解压源文件的情况下从 shell 脚本中捕获这个值吗?
我有一个目录,里面装满了数百万张 gif 图像。rm 命令太多了。
我一直在尝试这样的 find 命令:
find . -name "*.gif" -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)
问题是,它使我的机器非常糟糕,并且由于它是服务器而导致客户超时。
有什么方法可以更快地删除所有这些文件......而不锁定机器?
如果我从 shell 运行 emacs:
$ emacs foo &
Run Code Online (Sandbox Code Playgroud)
然后杀死那个外壳,emacs 死了。
如何运行命令使其在 shell 死机时不会死机?
我找到了对 nohup 的引用,但这似乎没有帮助:
$ nohup emacs foo &
Run Code Online (Sandbox Code Playgroud)
当 shell 死亡时,仍然会杀死 emacs。
是否可以在不使用鼠标的情况下将输出复制到剪贴板?
例如,我想做这样的事情:
$密码>>剪贴板
可以从命令行在任何文件夹中打开 Windows 7 资源管理器。 但是,它会自动展开(在左侧导航面板上)收藏夹、桌面和 [用户名] 文件夹。这使得很难看到导航面板中的内容。
如何告诉 Windows 7 资源管理器默认折叠这些文件夹,直到我打开它们?我只希望扩展选定的文件夹。
我用空格命名了一些文件,我想用_. 但是,每次我在 shell 中使用文件名(例如Spring 2011)编写命令时,shell 都无法识别该文件或目录。
我该怎么办?有什么办法可以将 unicode 字符用于空格吗?
更改用户默认 shell 的正确 OSX 方法是什么?当我用谷歌搜索它时,我发现了几个对名为 NetInfo Manager 的应用程序的引用,但我在我的系统上找不到它。还有对名为 niutil 的命令行版本的引用,我也没有找到。
在我中设置变量时,我~/.zshrc可以使用export
export PATH=/some/path
Run Code Online (Sandbox Code Playgroud)
或不
PATH=/some/path
Run Code Online (Sandbox Code Playgroud)
这些有什么不同,我应该使用哪个?