你可以使用 ls 命令创建别名,以帮助你找到上次离开的位置:
alias left='ls -t -1'
输出很简单,但如果你愿意,可以使用 --long 选项扩展它。这个别名列出的显示如下:
$ left demo.jpeg demo.xcf design-proposal.md rejects.txt brainstorm.txt query-letter.xml
文件计数
如果你需要知道目录中有多少文件,那么该解决方案是 UNIX 命令构造的最典型示例之一:使用 ls 命令列出文件,用-1 选项将其输出控制为只有一列,然后输出到 wc (单词计数)命令的管道,以计算有多少行。
这是 UNIX 理念如何允许用户使用小型的系统组件构建自己的解决方案的精彩演示。如果你碰巧每天都要做几次,这个命令组合也要输入很多字母,如果没有使用 -R 选项,它就不能用于目录,这会为输出引入新行并导致无用的结果。
而这个别名使这个过程变得简单:
alias count='find . -type f | wc -l'
这个别名会计算文件,忽略目录,但不会忽略目录的内容。如果你有一个包含两个目录的项目文件夹,每个目录包含两个文件,则该别名将返回 4,因为整个项目中有 4 个文件。
$ ls foo bar $ count 4
创建 Python 虚拟环境
你用 Python 编程吗?
你用 Python 编写了很多程序吗?
如果是这样,那么你就知道创建 Python 虚拟环境至少需要 53 次击键。
这个数字里有 49 次是多余的,它很容易被两个名为 ve 和 va 的新别名所解决:
alias ve='python3 -m venv ./venv' alias va='source ./venv/bin/activate'
运行 ve 会创建一个名为 venv 的新目录,其中包含 Python 3 的常用虚拟环境文件系统。va 别名在当前 shell 中的激活该环境:
$ cd my-project $ ve $ va (venv) $
增加一个复制进度条
每个人都会吐槽进度条,因为它们似乎总是不合时宜。然而,在内心深处,我们似乎都想要它们。UNIX 的 cp 命令没有进度条,但它有一个 -v 选项用于显示详细信息,它回显了复制的每个文件名到终端。这是一个相当不错的技巧,但是当你复制一个大文件并且想要了解还有多少文件尚未传输时,它的作用就没那么大了。
pv 命令可以在复制期间提供进度条,但它并不常用。另一方面,rsync 命令包含在几乎所有的 POSIX 系统的默认安装中,并且它被普遍认为是远程和本地复制文件的最智能方法之一。
更好的是,它有一个内置的进度条。
alias cpv='rsync -ah --info=progress2'
像使用 cp 命令一样使用此别名:
$ cpv bigfile.flac /run/media/seth/audio/ 3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)
使用此命令的一个有趣的副作用是 rsync 无需 -r 标志就可以复制文件和目录,而 cp 则需要。
避免意外删除
你不应该使用 rm 命令。rm 手册甚至这样说:
警告:如果使用 rm 删除文件,通常可以恢复该文件的内容。如果你想要更加确保内容真正无法恢复,请考虑使用 shred 。
如果要删除文件,则应将文件移动到“废纸篓”,就像使用桌面时一样。
POSIX 使这很简单,因为垃圾桶是文件系统中可访问的一个实际位置。该位置可能会发生变化,具体取决于你的平台:在 FreeDesktop 上,“垃圾桶”位于 ~/.local/share/Trash ,而在 MacOS 上则是 ~/.Trash ,但无论如何,它只是一个目录,你可以将文件藏在那个看不见的地方,直到你准备永久删除它们为止。
这个简单的别名提供了一种从终端将文件扔进垃圾桶的方法:
alias tcn='mv --force -t ~/.local/share/Trash '
(编辑:ASP站长网)
|