如何删除目录中除最新的 10 个隐藏文件夹之外的所有文件夹

大卫

我将 .mozilla 每次(重新)启动备份到文件夹 ~/nas-backups/mozilla 但我只想按字母顺序保留最近的 10 个文件夹。备份存储有日期戳,例如 .mozilla_2018_11_05_08:13

我想删除除最近的 10 个之外的所有脚本作为脚本的一部分,但由于它们是隐藏文件,我找不到方法来做到这一点:

rm -R 'ls -t | tail -n +11' 因为它忽略隐藏的文件/文件夹。

我试过 rm -R 'ls -ta | tail -n +11' 但这也不起作用。

如果它可以扩展,那么它只保留每天的第一个备份,那将是一个奖励。

我可以要求解释任何建议吗?谢谢。

请问有什么帮助吗?

维杰
  • 不适用于带有空格或换行符的名称。

  • 好的,在您的情况下,名称类似于“.mozilla_2018_11_05_08:13”。

  • 我假设母文件夹中没有其他文件或文件夹 ~/nas-backups/mozilla

  • 发帖前测试了一下:

    cd ~/nas-backups/mozilla
    total=$(ls -1A|wc -l); remove=$((total - 10)); rm -rv $(ls -1vA|head -n $remove)
    

解释

total=$(ls -1A|wc -l) #total number of folders
remove=$((total - 10)) #total -10 so that 10 folders are not removed
rm -rv $(ls -1vA|head -n $remove) # removes total -10 from top(head)
# because older folders(by name) are first in ls -1vA (v switch lists the names 
# proper numeric order.

ls --help

-v 文本中自然排序的(版本)数字

例子:

:~/nas-backups/mozilla$ ls -1vA
.mozilla_2019_01_09_01:16
.mozilla_2019_01_09_18:12
.mozilla_2019_01_09_18:16
.mozilla_2019_01_09_19:16
.mozilla_2019_01_09_20:16
.mozilla_2019_01_10_01:16
.mozilla_2019_01_10_18:12
.mozilla_2019_01_10_18:16
.mozilla_2019_01_10_19:16
.mozilla_2019_01_10_20:16
.mozilla_2019_02_09_02:16
.mozilla_2019_02_09_18:12
.mozilla_2019_02_09_18:16
.mozilla_2019_02_09_19:16
.mozilla_2019_02_09_20:16
.mozilla_2019_03_09_03:16
.mozilla_2019_03_09_18:12
.mozilla_2019_03_09_18:16
.mozilla_2019_03_09_19:16
.mozilla_2019_03_09_20:16
.mozilla_2019_03_10_03:16
.mozilla_2019_03_10_18:12
.mozilla_2019_03_10_18:16
.mozilla_2019_03_10_19:16
.mozilla_2019_03_10_20:16
:~/nas-backups/mozilla$ total=$(ls -1A|wc -l); remove=$((total - 10)); rm -rv $(ls -1vA|head -n $remove)
removed directory '.mozilla_2019_01_09_01:16'
removed directory '.mozilla_2019_01_09_18:12'
removed directory '.mozilla_2019_01_09_18:16'
removed directory '.mozilla_2019_01_09_19:16'
removed directory '.mozilla_2019_01_09_20:16'
removed directory '.mozilla_2019_01_10_01:16'
removed directory '.mozilla_2019_01_10_18:12'
removed directory '.mozilla_2019_01_10_18:16'
removed directory '.mozilla_2019_01_10_19:16'
removed directory '.mozilla_2019_01_10_20:16'
removed directory '.mozilla_2019_02_09_02:16'
removed directory '.mozilla_2019_02_09_18:12'
removed directory '.mozilla_2019_02_09_18:16'
removed directory '.mozilla_2019_02_09_19:16'
removed directory '.mozilla_2019_02_09_20:16'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Windows 10中的图片文件夹中获取所有图像

Linux-仅保存最近的10个文件夹,然后删除其余文件夹

Linux-仅保存最近的10个文件夹,然后删除其余文件夹

AppleScript:如何获取文件夹中没有隐藏文件的文件?

文件夹中除一个命名文件夹外的所有文件夹的glob

删除Python中除最新文件夹以外的所有文件夹

双重条件-删除所有3天以上的文件夹,但至少保留10个

VBA代码使用WQL查找目录中的所有隐藏文件夹并将其存储在xml文件中

Gitkraken:隐藏文件夹中的所有分支

删除文件夹中的隐藏文件

如何获取Windows 10的“开始”菜单以树状显示所有文件夹?

即使显示所有文件,如何完全隐藏文件/文件夹?

如何通过使用终端或脚本隐藏文件夹中的所有文件

自动删除超过10GB的文件夹中的所有文件?

无法删除文件夹赢得10

如何在Windows 10中使用密码保护和隐藏文件夹内容?

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

批处理文件,删除目录中除最新文件夹外的所有文件夹

Windows:如何找到隐藏文件夹的所有实例并删除?

PowerShell脚本从隐藏文件夹中删除文件

使用蝙蝠从文件夹中删除与Windows 10中的特定模式匹配的所有文件

递归删除除一个子文件夹之外的所有子文件夹

移动除一个文件夹之外的所有文件夹

如何获取当前目录中最大的 10 个文件夹(不是文件或子文件夹)?

删除除 10 个最新目录之外的所有目录

删除除两个文件夹之外的所有 .bat 文件

(批量)如何递归删除目录中除以.开头的文件/文件夹之外的所有文件/文件夹?

如何删除除某些文件夹之外的所有文件夹

如何确保从子文件夹中删除除 *.bin 文件之外的所有内容?

TOP 榜单

热门标签

归档