AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[delete](unix)

Martin Hope
johnfli
Asked: 2024-06-25 23:23:00 +0800 CST

删除多个文件夹中超过 30 天的文件

  • 6

我有一个根目录:/opt/abc/logs/EXPORT

在这个目录中,我还有 17 个其他目录

  • /opt/abc/logs/EXPORT/1

  • /opt/abc/logs/EXPORT/2

  • /opt/abc/logs/EXPORT/etc

  • /opt/abc/logs/EXPORT/17

这些目录里面是文件(没有其他目录)

我想删除超过 30 天的文件,但不删除最后的目录(1,,,)2etc17

我努力了:

find /opt/abc/logs/EXPORT/*/*.* -mtime +30 -exec rm {} \;

(//.-mtime 之间有一个 *)但我收到“没有这样的文件或目录”

有任何想法吗?

delete
  • 1 个回答
  • 39 Views
Martin Hope
Bojan Hrnkas
Asked: 2022-09-30 04:56:22 +0800 CST

删除导致所有命令挂起的巨大目录

  • 6

如何删除这个大目录?

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 输出没有变化。

我认为目录的大尺寸是问题所在。

rm delete
  • 3 个回答
  • 112 Views
Martin Hope
Dave
Asked: 2022-09-22 08:08:32 +0800 CST

如何删除 nftables 链中的特定元素?

  • 2

当前系统:

  • 发行版:Ubuntu 20.04
  • 内核:5.4.0-124-generic
  • nft: nftables v0.9.3 (Topsy)

我是新手,正在学习 nftables,这是我目前的 nft 规则集:

$sudo nft list ruleset                                                                                                                                                                                           taxmd-dh016d-02: Wed Sep 21 12:09:08 2022

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
                ip daddr 192.168.0.1 drop
        }
}

我想ip daddr 192.168.0.1 drop从输出链中删除。我尝试了以下方法:

sudo nft del rule inet filter output ip daddr 192.168.0.1 drop
sudo nft delete rule inet filter output ip daddr
sudo nft 'delete element ip daddr 192.168.0.1 drop'
sudo nft 'delete element ip'
sudo nft delete rule filter output ip daddr 192.168.0.1 drop

但没有任何效果,我不断收到此错误:

Error: syntax error, unexpected inet
delete inet filter chain output ip daddr 192.168.0.1 drop
       ^^^^

为什么我不能删除特定元素?我认为这将是直截了当的,但我错过了一些东西。

firewall delete
  • 1 个回答
  • 27 Views
Martin Hope
TimR75
Asked: 2022-07-12 06:48:46 +0800 CST

有条件地删除具有扩展名优先级的不同扩展名的重复文件?

  • 0

我有一个很大的文件目录,其中有重复的文件名但扩展名不同。我想做的是删除重复项,但具有保留扩展名的优先顺序。

因此,例如,如果我有 4 种文件类型 *.aaa、*.bbb *.ccc、*.ddd,如果没有其他具有此名称的文件,我只想保留 *.ddd,如果有,则保留 *.ccc没有 *.aaa 或 *.bbb,如果没有 *.aaa 则保留 *.bbb 并始终保留 *.aaa。

有没有办法做到这一点?

scripting delete
  • 1 个回答
  • 23 Views
Martin Hope
ecjb
Asked: 2020-02-10 06:18:07 +0800 CST

一次删除所有具有特定名称但扩展名不同的文件

  • 5

我有一个目录,其中包含以下文件集:

cheatsheetold.aux
cheatsheetold.log
cheatsheetold.out
cheatsheetold.pdf
cheatsheetold.synctex.gz
cheatsheetold.tex
cheatsheetnew.aux
cheatsheetnew.log
cheatsheetnew.out
cheatsheetnew.pdf
cheatsheetnew.synctex.gz
cheatsheetnew.tex

我想要做的是删除所有cheetsheetold.

cheatsheetold.aux
cheatsheetold.log
cheatsheetold.out
cheatsheetold.pdf
cheatsheetold.synctex.gz
cheatsheetold.tex

不接触cheatsheetnew

cheatsheetnew.aux
cheatsheetnew.log
cheatsheetnew.out
cheatsheetnew.pdf
cheatsheetnew.synctex.gz
cheatsheetnew.tex

我已经看过this other question,但它并没有解决问题,因为两个文件名都有一套完整的扩展名

terminal delete
  • 3 个回答
  • 1394 Views
Martin Hope
Michael
Asked: 2020-01-01 16:44:12 +0800 CST

遍历目录,比较树,只删除一侧丢失的文件

  • 1

试图弄清楚如何删除目录层次结构中.mp3在相应文件夹中/out/没有匹配的任何文件......以及层次结构中在.jpg .png`中没有相应文件的任何其他文件, ETC。).flac/in//out/in/'. The only extension to mutate here are those two but there will be other files (like,

#!/bin/bash
find /in>/tmp/in.txt
sed 's/.flac/.mp3/g; s+/in+/out+g' /tmp/in.txt>/tmp/inx.txt
find /out>/tmp/out.txt
grep -vxF -f /tmp/inx.txt /tmp/out.txt>/tmp/clean.txt
while read line; do rm "$line"; done < /tmp/clean.txt

最后清理空文件夹。这一行是一种“作弊”来删除任何空目录。如果上面的“rm”可以用来删除上面的文件或文件夹会更好,但这会很危险吗?

find /out/. -depth -type d -exec rmdir {} + 2>/dev/null

到目前为止,我已经发现前 2 个可以这样混为一谈:

find /in | sed 's/.flac/.mp3/g; s+/in+/out+g'>/config/inx.txt

我尝试使用:

grep -vxF -f /tmp/inx.txt `find /out`>/tmp/clean.txt

但我得到了错误:参数列表太长。

有没有办法将所有这些东西放在一起并节省一些处理时间?到目前为止,完成该操作需要将近 10 分钟。


下一次尝试,除了在带有单引号的文件/文件夹上工作(IFS 至少让它处理空格):

#!/bin/bash
IFS=$'\n'; set -f
for mp in $(find /out)
do
    mf="${mp%/out/}/in/"  # Change /out/ to /in/
    ff="${mf%mp3}flac"    # Convert mp3 filename to flac
    [[ ! -f "$ff" ]] && echo rm "$mp"
done
unset IFS; set +f

好吧。我觉得这就是。在这一点上,编辑了我原来的问题,以反映它检查的不仅仅是音乐文件。

#!/bin/bash
find /out -type f -name '*' -exec bash -c '
    for mp in "$0" "$@";
    do
        mf="${mp#/out/}";               # Strip /out/ base prefix leaving relative pathname
        if [ "${mf##*.}" = "mp3" ]; then
                mf="${mf%.mp3}.flac";   # convert filename to flac if it was mp3
        fi;
        [[ ! -f "/in/$mf" ]] && echo rm "$mp";
    done
' {} +

开始了解 bash 速记是如何工作的。

#!/bin/bash
find /out -type f -exec bash -c '
    for mp in "$0" "$@";
    do
        mf="${mp#/out/}";       # Strip /out/ base prefix leaving relative pathname
        [[ "${mf##*.}" == "mp3" ]] && mf="${mf%.mp3}.flac";     # convert filename to flac if it was mp3
        [[ ! -f "/in/$mf" ]] && echo rm "$mp";      # remove /out/ file if no match
    done
' {} +
bash delete
  • 1 个回答
  • 81 Views
Martin Hope
dr_
Asked: 2018-09-19 06:09:28 +0800 CST

find 命令中的 -prune 和 -delete 之间不兼容?

  • 1

联机帮助页find说:

   -prune True;  if  the file is a directory, do not descend into it. If -depth is 
          given, false; no effect.  Because -delete implies -depth, you cannot 
          usefully use -prune and -delete together.

最后一句话是什么意思?不能有用地运行以下命令......

find /path/ -prune -type f -ctime +15 -delete

... 查找并删除 15 天前最后一次更改的所有文件,/path/ 但不在子目录中 /path/?我认为这是一个完全有效的用例。

find delete
  • 1 个回答
  • 332 Views
Martin Hope
Nogatco
Asked: 2018-09-09 02:05:49 +0800 CST

如何删除 NTFS 分区上损坏的文件?

  • 1

我在 Arch linux/dev/sda3上通过ntfs-3g安装了一个 NTFS 分区()。该分区包含一个cee431d2730eb5e1697bd57b3bb529我要删除的文件。

ls -la返回以下输出

ls: cannot access 'data/cee431d2730eb5e1697bd57b3bb529': Input/output error
total 16611578
#Some other files...
d?????????  ? ?       ?              ?            ? cee431d2730eb5e1697bd57b3bb529

同样file cee431d2730eb5e1697bd57b3bb529返回cee431d2730eb5e1697bd57b3bb529: cannot open 'cee431d2730eb5e1697bd57b3bb529' (Input/output error)

ls -i也返回? cee431d2730eb5e1697bd57b3bb529(它找不到 inode)

我尝试删除它,rm -f但它也因输入/输出错误而失败(作为 root 用户和普通用户)。

运行ntfsfix /dev/sda3也没有解决问题。

files delete
  • 2 个回答
  • 1816 Views
Martin Hope
user32012
Asked: 2018-06-28 07:34:01 +0800 CST

覆盖文件但保留它是什么意思?

  • 0

该wipe工具有选项-k Keep files, i.e. do not remove() them after overwriting。

这意味着不删除被……好吧……擦除的文件是什么意思?

delete deleted-files
  • 2 个回答
  • 526 Views
Martin Hope
Cy8099
Asked: 2018-03-30 15:36:43 +0800 CST

仅从播放列表中删除歌曲而不是删除歌曲文件的问题!

  • 1

我在我的 Fedora Gnome 27 上使用 Audacious 3.9 作为我的默认音乐播放器,我想删除我当前播放列表中的一首歌曲,但问题是:在歌曲的右键菜单中也没有选择删除图标等。我也搜索过,但结果是启用了一个删除歌曲文件的插件!现在请让我知道是否可能。谢谢。

delete music
  • 1 个回答
  • 142 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve