我总是必须在打印的作业报告中提交源代码。我必须将我的课程代码复制并粘贴到文档中,我发现这是一项烦人的任务。
我想解决这个“复制和粘贴”问题。因此,我是这样做的cat,但它仅适用于当前目录。我希望它可以递归显示文件内容。
ls -R *.java | xargs cat >> all_course.txt
Run Code Online (Sandbox Code Playgroud) 我有一个目录.gz,我想与 GNU 并行并行扩展每个存档。但是我没有取得任何成就。
我试过
parallel 'gunzip {}' ::: `ls *.gz`
parallel gunzip `ls *.gz`
Run Code Online (Sandbox Code Playgroud)
没有结果,bash 告诉我:
/bin/bash: archive1.gz: command not found
...
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢
我想从命令行读取文件夹的大小。 ls -lh将所有文件夹显示为 4k,这大概是文件夹本身的占用空间的大小,而不是包含的文件。我想读取文件夹中所有包含文件的大小。这可能吗?
我在网上做了一些搜索,我试图找到一种方法来递归列出所有文件及其绝对路径和权限。我想这样做是为了我可以grep得到我想要的,这样当我运行命令时,我就可以得到匹配的文件、它们的权限和它们的完整路径,比如:
<search command> | grep file.name
Run Code Online (Sandbox Code Playgroud)
输出:
/home/current/Desktop/file.name
/etc/program/src/file.name
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用,ls因为它是最快的,我会输入:
ls -alR $PWD/
Run Code Online (Sandbox Code Playgroud)
但这并没有显示文件的路径,所以如果我grep输出了,那么我会看到文件权限,而不是它的来源目录。
我可以使用lsintegrated withfind并grep以我想要的格式获得输出,我可以使用这样的东西:
ls -ault `find $PWD/ -type f` | grep file.name
Run Code Online (Sandbox Code Playgroud)
但这非常慢,我猜是因为实际上有两个命令正在运行。
如果我只使用findwithout lsor grep,那么它会更快,但要输入一堆:
find $PWD/ -type f -name file.name -printf '%M %u %g %s\t%a\t%p\r\n'
Run Code Online (Sandbox Code Playgroud)
这会给我一个很好的格式(它还包括用户、组、大小和最后访问日期,这很有帮助)。然而,这是一个吨输入,它肯定是不一样快,使用ls与grep。
有没有比使用更快的方法来做我想做的事情find?
(慢)Linux“find”命令有一个选项“-ls”,可以像“ls -l”命令一样显示大小、日期等。但是“locate”命令似乎没有。那么我怎样才能获得与 locate 相同的功能呢?
我使用反引号将 locate 的输出传递给 ls,如下所示:
ls -al `locate -e somefile`
Run Code Online (Sandbox Code Playgroud)
...只要 somefile 存在,它就可以工作。但是如果 somefile 不存在,它会给我一个完整的目录列表。
如果我这样做:
ls -al `locate -e somefile` thisfileneverexists
Run Code Online (Sandbox Code Playgroud)
...然后它有点工作,如果你不介意错误行:
ls: cannot access thisfileneverexists: No such file or directory
Run Code Online (Sandbox Code Playgroud)
……这让我们想到了明显但极其丑陋的解决方法:
ls -al `locate -e somefile` thisfileneverexists 2>/dev/nul
Run Code Online (Sandbox Code Playgroud)
那行得通,但肯定有更好的方法!
使用zsh(和oh-my-zsh),是否可以始终在某个其他命令之后运行一个命令?我想总是对目录运行lsafter cd,而不是cd example; ls每次都运行。
我试过了:
function cd {
cd $1
ls
}
Run Code Online (Sandbox Code Playgroud)
但它似乎zsh在运行时退出,没有任何输出(堆栈溢出?)。更改函数的名称使其按预期工作,但我宁愿仍然使用该cd命令。
alias cd='cd $1;ls'
Run Code Online (Sandbox Code Playgroud)
列出指定的目录,但实际上并不更改工作目录。
是否有可能做到这一点,如果有,如何做到?
标题样的说,这一切:我想获得的东西,如输出的那些整齐的彩色列ls -al,也就是说,在10basetom的回答到这个问题。
我想ls根据文件大小过滤命令的输出。任何大于 100KB 的 .jpg 或 .png 文件都应在输出中报告。
我已经能够过滤 .png / .jpg 文件,但我无法丢弃任何小于 100KB 的文件。
这是我目前正在使用的:
ls -lah | grep '.png\|.jpg'
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么能做到这一点?
我有一个带有目录树的客户端,其中包含许多我需要在本地开发机器上拥有的高级目录。除非出现问题,否则我很少看它们。
我在 Finder 中用灰色标签标记了“无趣”的标记,而我每天使用的标记标记为绿色标记。当我使用 Finder 时,这在极少数情况下工作正常。
相反,我使用 Terminal.app,尽管我并不反对其他终端模拟器,只要它们快速而强大。使用 时ls,即使使用@和G标志,我也没有可以用来淡化无趣的目录条目的有用信息。(如果我可以ls通过一个简单的awk脚本来应用着色,我会很好。)
我知道我可以使用 osascript 来获取这个属性,然后装饰文件输出,但这可能会导致ls自 Unicos 以来最慢的实现。我也知道我可以使用 ls 更改默认颜色,但这并没有达到我需要的水平。
是否有一种简单、快速、已经存在的工具可以根据 Finder 标签颜色为 ls 输出着色,然后回退到$LSCOLORS? 或者那是我的下一个 GitHub 项目?
ls -l 给我颜色编码的输出。文件夹是蓝色的,可执行文件是绿色的,等等。这些颜色在彻底过滤时消失了| 更多的。无论如何要实现分页输出和颜色?