我需要按大小对所有具有 644 权限的文件进行排序。
到目前为止,我已经尝试使用ls
命令来查找和排序,但它们似乎不正确。我认为它可能需要一个grep
命令,但我认为它需要显示像 644 而不是 rwx 这样的数字。我不知道如何以简单的方式做到这一点,因为这是我第一次使用 Linux 和终端。
我正在运行一个不必要的复杂脚本,它看起来类似于这个命令:
find /home/user/videos/*.avi -mtime +0 -exec mv -f {} "/home/nb/videos/1 day old" \;
Run Code Online (Sandbox Code Playgroud)
然后我运行相同的命令,但这次,从“1 天前”文件夹到“2 天前”文件夹。还有一些命令会一直重复到 7 天!因此,每天,前一个“X 天前”文件夹中的文件都会移动到第二天的文件夹中。
我基本上是在尝试自动组织文件,在 cron 中运行,将 X 天之前的文件移动到正确的文件夹中。它效率低下,但我确实需要这样做。有没有更简单、更有效的方法?
一旦到达 7 天前的文件夹,我就有了最后一个命令,可以从最后一个文件夹中删除 7 天前的文件。
我试图对文本文件进行排序并将排序后的文件替换为原始文件,因此我将该文件也设置为排序命令的输出,但是当我这样做时,它会清除文件内容并且文件变为空,为什么?我可以使用另一个文件来解决这个问题,但感觉不太好:D,(我正在使用 Lubuntu。)
faav@faav-XPS-L501X:~$ cat test
A
C
B
faav@faav-XPS-L501X:~$ ls -l test
-rw-rw-r-- 1 faav faav 6 Apr 14 00:28 test
faav@faav-XPS-L501X:~$ sort test > test
faav@faav-XPS-L501X:~$ cat test
faav@faav-XPS-L501X:~$ ls -l test
-rw-rw-r-- 1 faav faav 0 Apr 14 00:28 test
Run Code Online (Sandbox Code Playgroud) 我想以 格式对日期进行排序31.12.2023
。应首先显示最低年份,然后显示最低月份,最后显示最低日期。
下面的代码符合我的需求吗?乍一看似乎不错。
sort -t '.' -k 3.1 -k 2.1 -k 1.1
Run Code Online (Sandbox Code Playgroud)
但对我来说更有意义的是:
sort -t '.' -k 3.4 -k 2.1 -k 1.1
Run Code Online (Sandbox Code Playgroud)
但这并没有按照我想要的方式排序。
编辑:
谢谢您的回复!
@Dan 谢谢你非常详细的解释。仍然不知道如何准确地处理关键选项。我测试了你的代码,但它仍然混合了一些东西。也许这是我在变量中使用它的方式,或者可能是字符串中内容的类型。
然后尝试了@FedKad 的提示,这似乎像我的 -k 3.1 -k 2.1 -k 1.1 一样工作。和-k 3 -k 2 -k 1 意思一样吗?
目前我只有 2023 年的条目,所以无法评估年份是否也有效,但现在使用上面的键,我已经按照我想要的方式进行了排序。也许我描述我需要的结果是失败的,但现在我得到了日最低到最高和月最低到最高。今年我将不得不等到 2024 年到来:)这是我的输出示例
2023年1月7日
2023年1月8日
2023年1月9日
2023年1月21日
2023年1月26日
2023年1月27日
2023年2月2日
Banshee 有一个选项 - 按发行日期排序专辑,而不是按名称排序,但打开它什么也不做。所有标签都正确填写。是在错误还是我错过了什么?
我正在寻找一个音乐播放器/音乐库管理器,它允许我查看按我为该艺术家拥有的曲目数量排序的艺术家列表。Winamp 会这样做,但我还没有找到任何兼容 Ubuntu 的应用程序。GMusicBrowser 是最接近的。
我尝试过 Banshee、Amarok、Guayadeque、Audacious,并查看了更多截图(Clementine、Exaile、Quodlibet、Jajuk 等)。
同样,我正在寻找能够按每个艺术家拥有的歌曲数量进行排序的能力。
或者,根据曲目数量显示过滤的艺术家列表的能力(例如,仅向我显示超过 10 首曲目的艺术家)也可以。
我刚刚升级到 Ubuntu 12.04 和 Thunderbird 13.0.1。
我之前在 Thunderbird 有 2 个帐户:
a..@i..net
s..@c..com
我在 SeaMonkey 上还有另一个帐户:
a..@i..com
,我将它导入到 Thunderbird 中。
现在我想要的账户顺序是:
a..@i..com
a..@i..net
s..@c..com
但它显示:
a..@i..net
s..@c..com
a..@i..com
我在 Thunderbird 中找不到任何选项来根据需要对它们进行排序。我遇到了第 3 方扩展,但我避免使用此类扩展。有没有其他方法可以做到这一点?
我使用创建了一个文件ed
并将其命名为numeric
. 其内容如下:
-100
-10
0
99
11
-56
12
Run Code Online (Sandbox Code Playgroud)
然后我在终端上执行了这个命令:
sort numeric
Run Code Online (Sandbox Code Playgroud)
结果是:
0
-10
-100
11
12
-56
99
Run Code Online (Sandbox Code Playgroud)
当然,这个输出完全出乎意料!
我想要一个完整的、排序的 bash 历史列表。但是有一些问题:
history
,列表永远不会显示完整的列表,只显示 1000 个命令。当我想 从我的历史记录中创建一个排序的.txt文件时,我会这样做:
history | sort > History.txt
Run Code Online (Sandbox Code Playgroud)
但是由于数字,命令不是按字母顺序排序的,而是按数字排序的。
有什么办法可以做我想做的事吗?
我想在默认情况下对 top 命令中的内存使用情况进行排序。这样我就不必在每次运行 top 命令时进行排序。
怎么做?
提前致谢....
sort ×10
command-line ×5
automation ×1
banshee ×1
bash ×1
bash-history ×1
default ×1
files ×1
music ×1
permissions ×1
ram ×1
scripts ×1
tag ×1
thunderbird ×1
top ×1