如何删除符合特定数字模式的文件我现在在 MacOS 中像这样删除,
rm */sections.json.* */sections.json0* */sections.json1* all the way till 9
如何删除符合特定数字模式的文件我现在在 MacOS 中像这样删除,
rm */sections.json.* */sections.json0* */sections.json1* all the way till 9
我现在位于“上传”文件夹中(centos 7)
我想要这个文件夹内的文件 * mp3以及其中的文件夹,而不会不断地被“y”击中
我使用这段代码,但是我必须进入每个文件夹并运行代码,这很耗时。我希望全部自动删除。
rm *.mp3
我有这个脚本,我想在其中添加一行,在串联后,安全地删除 *.dump 文件,因为它们很大,而且我没有空间用于串联文件和转储文件。jelly 是一个 txt 文件,其中包含一行一行的基因组 ID 列表,如下所示:
GCA....
GCA....and so on.
我有一堆转储文件名,以基因组 id 命名,有两列:例如。GCA...1.dump 就像:
A 57575757
C 6656565..
前任。GCA...2.dump 就像:
AA 6565656
AT 6565656...
所以我有每个基因组 ID 的 14 个转储文件(1-14 ngrams)。因此,我想为每个基因组 ID 连接所有 1-14,然后删除基于 jelly 文件的使用过的转储文件。最后,我只需要在创建的新目录中有一个名为 *.counts 的文件。
#! usr/bin/env bash
dir_in=$1 # Jelly_count
super=$2 # Archaea/Bacteria
group=$3 # Asgard_group/Pseudomonadota
sub=$4 # Aquificota
dir_out=Counts/"${super}"/"${group}"/"${sub}"/CHR
if [ ! -d "${dir_out}" ]; then
mkdir -p "${dir_out}"
fi
# read the ids in jelly file
for id in $(cat "${dir_in}"/"${super}"/"${group}"/"${sub}"/jelly);
do
echo "Concatenating files from genome ${id}"
# make a loop from 1 to 14 or any other range I need
for i in $(seq $5 $6);
do
# concatenate all 14 tsv files in one
csvtk concat "${dir_in}"/"${super}"/"${group}"/"${sub}"/CHR/"${id}"_"${i}".dump >> "${dir_out}"/"${id}"_chr_kmer.counts
# then delete all the 14 dump files
# MAYBE ?????
**find "${dir_in}"/"${super}"/"${group}"/"${sub}". -name '*.dump' -delete**
done
done
我尝试过rm,但还有更好的方法吗?
谢谢你们。
保罗
我了解到 -i 选项是交互模式,-f 选项是 rm 命令中的强制模型。
当我尝试这两种选择时
rm -if test.txt
它没有问我,只是删除了它,这意味着 -f 选项覆盖了 -i 选项。
当然,我不会在现实生活中同时使用选项 -i 和 -f。但是我想知道如果同时使用两个相互矛盾的选项是否有优先级。
我在 Ubuntu 22.04 中试过这个。
今天备份 rsync 给我一个关于 dir($HOME.cache/doc/by-app) 的错误
我已经检查过了,我看到了
首先我去目录
cd $HOME.cache/doc$ cd by-app/
我做 ls 和..
ls
/bin/ls: error while loading shared libraries: libcap.so.2: cannot read file data: Error 21
我做cd..
cd ..
我控制目录树并制作命令文件以查看包含的内容
find by-app/
by-app/
by-app/libcap.so.2
find by-app/ |parallel file
by-app/: directory
by-app/libcap.so.2: directory
我要删除!
rm -vfr by-app/
rm: impossible to remove 'by-app/libcap.so.2': Operation not permitted
我以root身份执行此操作!
sudo rm -frv .cache/doc/by-app
Password:
rm: impossible to remove '.cache/doc/by-app': Permission denied
这是什么?
系统是 Slackware64 15.0
如何删除这个大目录?
stat session/
File: ‘session/’
Size: 321540096 Blocks: 628040 IO Block: 4096 directory
Device: 903h/2307d Inode: 11149319 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-29 14:34:40.910894275 +0200
Modify: 2022-09-29 14:35:09.598400050 +0200
Change: 2022-09-29 14:35:09.598400050 +0200
Birth: -
请注意,目录的大小(不是内容,而是目录条目本身)超过 300MB。 inode 数量超过 1100 万。
该目录没有子目录,只有大量文件。
通常的命令都不起作用。我试过这些:
rsync -a --delete empty_dir/ session/
rm -rf session
find . -type f --delete
如果我跑ls -f1
进去,它就会挂起。
如果我跑mv -- * ../.tmp_to_delete
进去,它就会挂起。
如果我跑du
进去,它就会挂起。
目前 rsync --delete 已经运行了两天,读取速度高达 7MB/s,我看到目录的 stat 输出没有变化。
我认为目录的大尺寸是问题所在。
我有一些目录,其中包含大量文件。我希望通过删除其中包含特定字符串但没有某些其他字符串的文件来修剪这些目录。
例如删除文件名中有“AAA”但没有“BBB”、“CCC”或“DDD”的文件。
这可能吗?