如何编写一个脚本来将 20 个最旧的文件从一个文件夹移动到另一个文件夹?有没有办法抓取文件夹中最旧的文件?
基本上我可以在 zsh 中使用 glob 到一个列表。通常,事实证明,我想过滤该列表,但我很想知道,是否需要这样做。
zsh 有过滤列表的方法吗?我担心这是一个显而易见的问题,但从心理上来说,今天是低收益日。
对于我正在制作的 bash 脚本,我需要删除目录中除最新的 2 个文件之外的所有文件。
我决定使用ls -tUr > somefile.txt
然后拖尾最新的 2,将它们移到其他地方rm *
,然后将它们移回。
出于某种原因,somefile.txt
实际上显示(在其余文件中)somefile.txt
其中使用tail
命令搞砸了。
所以我的问题是,逻辑上ls
会返回当前文件夹/文件,然后被重定向到somefile.txt
,但显然这不会发生,因为somefile.txt
必须在ls
运行之前存在;为什么是这样?
是否存在一个足够病态的文件名或文件名集合,其约束条件是它必须具有给定的前缀和后缀,比如file_<your_stuff_here>.txt
这会使在 bash 脚本中评估或反引号 ls 的输出变得危险?我们所说的“危险”意味着它允许任何拥有相关目录文件创建权限的人运行任何命令。
例如,让 bash 脚本只是
#!/usr/bin/env bash
hello=(`ls -t`)
Run Code Online (Sandbox Code Playgroud)
看起来文件系统通过将文件名用引号括起来来清理特殊字符,例如空格。它会捕获所有这些东西吗?