gpt4 book ai didi

linux - : `ls -lt | grep - | head -1 | awk ' {print $9 }' | xargs rm` 是什么意思

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:11 24 4
gpt4 key购买 nike

此命令的含义是什么:ls -lt | grep - |头-1 | awk '{print $9}' | xargs rm

我知道这些命令的各自含义,但是当我们通过管道连接它们时会发生什么?

最佳答案

了解长管道的作用的一种简单方法是一次运行它们。运行ls -lt ,然后ls -lt | grep - ,然后ls -lt | grep - | head -1等等。查看每个命令的中间输出是什么,以便您知道下一个命令将输入​​什么内容。

$ cd /usr
$ ls -lt
total 156
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/
drwxr-xr-x 2 root root 90112 Mar 5 06:27 bin/
drwxr-xr-x 2 root root 12288 Mar 5 06:27 sbin/
drwxr-xr-x 155 root root 4096 Mar 5 06:27 lib/
drwxr-xr-x 50 root root 20480 Feb 20 18:11 include/
drwxr-xr-x 330 root root 12288 Feb 18 16:58 share/
drwxr-xr-x 2 root root 4096 Oct 19 13:51 games/
drwxr-xr-x 3 root root 4096 Jul 19 2016 locale/
drwxr-xr-x 10 root root 4096 Jul 19 2016 local/

文件列表,每个条目独占一行,并附有权限、大小和其他信息。正在查看man ls我看到 -t flag 表示文件按修改时间排序,从最新到最旧。

$ ls -lt | grep -
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/
drwxr-xr-x 2 root root 90112 Mar 5 06:27 bin/
drwxr-xr-x 2 root root 12288 Mar 5 06:27 sbin/
drwxr-xr-x 155 root root 4096 Mar 5 06:27 lib/
drwxr-xr-x 50 root root 20480 Feb 20 18:11 include/
drwxr-xr-x 330 root root 12288 Feb 18 16:58 share/
drwxr-xr-x 2 root root 4096 Oct 19 13:51 games/
drwxr-xr-x 3 root root 4096 Jul 19 2016 locale/
drwxr-xr-x 10 root root 4096 Jul 19 2016 local/

似乎删除了“total 156”行。 (如果这是目标,那么这是一种相当糟糕的方法。无法保证每一行中都有破折号,而这正是 grep - 正在寻找的内容。具有完整 rwxrwxrwx 权限的文件在行中不会有破折号。)

$ ls -lt | grep - | head -1
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/

获取先前 grep 结果的第一行。

$ ls -lt | grep - | head -1 | awk '{print $9}'
src/

打印第九列,即文件名。

小心:此时您可以添加 | xargs rm ,但是rm看起来很危险。我们不要这样吧?我不会运行它来看看会发生什么,而是尝试 man xargs看什么xargs rm做。或者谷歌“xargs rm”:啊哈,这告诉我它将删除传入的文件。很高兴知道 - 我想我会通过。

将所有部分放在一起,您可以将总体结果描述为“按时间倒序列出文件,找到第一个,然后将其删除”。或者换句话说,删除最新文件。这就是整个事情的作用。

关于linux - : `ls -lt | grep - | head -1 | awk ' {print $9 }' | xargs rm` 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55033709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com