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 / 问题

问题[files](unix)

Martin Hope
Ari Cooper-Davis
Asked: 2025-03-18 23:44:23 +0800 CST

Fedora“文件”应用程序提供错误的“详细类型”描述

  • 4

我在 Fedora 41 (Gnome 47)上。

我安装了 Foxit Reader 来阅读 PDF,但不喜欢它,所以卸载了它。

现在,程序Detailed Type中Files所有 PDF 文档的描述都是FoxitReader Document。

显示错误详细类型的文件应用程序的屏幕截图

我如何删除对 Foxit Reader 的引用?

files
  • 2 个回答
  • 48 Views
Martin Hope
Aniruddha
Asked: 2025-03-17 09:54:03 +0800 CST

为什么有些文件无法查找?

  • 5

我以为所有文件都是可查找的,但我正在查看处理文件不可查找情况的代码库。

为什么这是必要的?

在什么情况下文件无法查找?为什么?

files
  • 1 个回答
  • 110 Views
Martin Hope
sdbbs
Asked: 2025-02-19 19:10:39 +0800 CST

按名称查找项目,并打印出它们是否是目录文件?

  • 9

请考虑以下示例:

mkdir /tmp/test2 && cd /tmp/test2
mkdir -p aa/{tmp,src}
mkdir -p bb/aa/{tmp,src}
mkdir -p {dd,ee}/bb
touch {dd,ee}/bb/aa

tree | awk '{print "# " $0}'
# .
# ├── aa
# │   ├── src
# │   └── tmp
# ├── bb
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── cc
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── dd
# │   └── bb
# │       └── aa
# └── ee
#     └── bb
#         └── aa
#
# 16 directories, 2 files

因此,我想找到所有名为的项目aa,并以与相同的格式将它们打印出来ls -la,这样我就可以知道它们是文件还是目录。

如果我使用典型的find-exec那么ls -a目录本身就不会打印为项目,而是其内容如下:

$ find . -name aa -exec ls -la {} \;
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 12:00 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa

如果我改用,ls -lad {}/那么我明确地只打印出目录节点,那么文件节点根本就不会打印,而是收到错误“不是目录”:

$ find . -name aa -exec ls -lad {}/ \;
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
ls: cannot access './dd/bb/aa/': Not a directory
ls: cannot access './ee/bb/aa/': Not a directory

bash如果我直接在命令行上尝试某种条件,它会失败:

# test
$ [ -d aa ] && echo dir || echo file
dir

$ find . -name aa -exec [ -d {} ] && ls -lad {}/ || ls -la {} \;
find: missing argument to `-exec'
ls: cannot access '{}': No such file or directory
ls: cannot access ';': No such file or directory

那么,我该如何使用find . -name aa,最终我得到这个输出:

drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa
files
  • 2 个回答
  • 168 Views
Martin Hope
Apollucas
Asked: 2025-01-26 22:28:58 +0800 CST

我如何使“ls”按照 Thunar 对文件进行排序的方式进行排序?

  • 14

标题是我想要实现的目标的总结,但我会举一个例子来说明我的问题是什么以及我如何尝试解决它。

示例文件夹

假设我在 Linux 系统上有一个文件夹,其中包含以下文件:.a,,,,,,和。.A.b.BaAbB

图纳尔

当我在我选择的文件管理器 Thunar 中打开文件夹时,文件按以下顺序显示:

.a
.A
.b
.B
a
A
b
B

这是对我有意义的输出;首先是隐藏文件(或目录),然后按字母顺序排序(考虑大小写)。最好将大写文件排在小写文件之前,但这也不算太糟。换句话说,这是我试图用 实现的输出ls。

ls

当我想通过列出该文件夹的文件时ls,我得到的结果如下:

$ ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B

这里,隐藏文件没有排到顶部,但文件整体上是按照“合理”的字母顺序排列的。

尝试LC_ALL=C和LC_COLLATE=C

将隐藏文件排序到顶部的几个解决方案是临时设置LC_ALL或LC_COLLATE为C(我很难看出两者之间的区别,因此非常感谢您的解释):

$ LC_ALL=C ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b
$ LC_COLLATE=C ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b

如您所见,这确实解决了隐藏文件问题,但是字母排序的行为现在与 Thunar 按字母顺序对文件进行排序的方式不一致。

问题

因此,这引出了一个问题:我如何ls以与 Thunar 相同的方式进行排序?最好避免通过管道传输ls到另一个命令(如)sort,因为我想将这个新命令别名为其"ls"自身。

如果这不可能的话,我怎样才能让 Thunar 按照对文件进行排序的方式ls对文件进行排序(LC_ALL=C/LC_COLLATE=C方法对我来说似乎足够好了)?

进一步说,我想问一下按字母顺序对文件进行排序时的最佳做法是什么。我刚刚描述的行为在我看来是合理的,但也许事实并非如此?

files
  • 2 个回答
  • 871 Views
Martin Hope
intelfx
Asked: 2025-01-21 04:45:00 +0800 CST

是否有一个工具可以“递归”移动/重命名目录(带有冲突/合并)?

  • 5

假设我想将目录树移动(重命名)/var/lib/postgres/data到/var/lib/postgres/data.old:

/var/lib/postgres
└── data
    ├── base
    │   ├── 16390
    │   │   └── <...>
    │   └── <...>
    │       └── <...>
    ├── global
    │   └── <...>
    ├── pg_wal
    │   ├── <...>
    │   ├── archive_status
    │   └── summaries
    ├── <...>
    └── postmaster.pid

通常,它只需一个rename()系统调用和一个命令即可:mv data data.old。

但是,想象一下该目录树中的某个地方有一个活动的挂载点,例如,pg_wal是一个不同的文件系统:

$ findmnt
<...>
├─/var/lib/postgres                           stank/data/stratofortress/PostgreSQL                              zfs       rw,noatime,xattr,posixacl,casesensitive
│ └─/var/lib/postgres/data/pg_wal             stank/data/stratofortress/PostgreSQL/pg_wal                       zfs       rw,noatime,xattr,posixacl,case-sensitive
<...>

或者,假设目标名称(data.old)已经存在,并且目录树的某些分支已经创建(因为它们是挂载点,与上面的情况相同)。

~~在这两种情况下~~在后一种情况下,mv将拒绝执行任何操作。使用类似的东西执行深度复制的成本cp -a非常高,并且由于超出了本问题范围的原因,reflinks 不可用。


是否有一个工具可以执行最佳的“递归移动”,迭代地下降到源层次结构中无法批量重命名的每个子树的部分,直至单个文件(最终回到制作每个单独文件的副本,如果需要)?

注意:我正在寻找一种可以扩展到任意数量的子树和冲突的通用解决方案,即mv data/* -t data.old; mv data/pg_wal/* -t data.old/pg_wal不是解决方案。换句话说,请不要从上面的示例中推断出任何约束或特殊情况。

files
  • 1 个回答
  • 34 Views
Martin Hope
Rodion Gorkovenko
Asked: 2024-11-14 16:50:39 +0800 CST

为什么 /sys/devices/.../product_serial 有时会读作垃圾?

  • 9

服务在启动时读取sys/devices/virtual/dmi/id/product_serial某个位置,通常包含一些典型的十位十六进制数字(例如01212302C5),并带有换行符。但是有时内容无法解析为字符串 - 十六进制中的字节是字符串f8 6a 32 6d 0a,我无法弄清楚为什么以及如何发生这种情况。最后一条0a似乎暗示它仍然应该是文本。通常发生在 CI 中,但我不确定容器化环境是否是导致此问题的原因。

如此奇怪的行为究竟是什么原因造成的呢?

files
  • 1 个回答
  • 236 Views
Martin Hope
Moeren
Asked: 2024-10-27 07:02:34 +0800 CST

访问文件时可以运行脚本吗?

  • 6

我有一个程序,每次执行某项操作时,它都会重新读取其配置文件。我想用某种虚拟文件替换该文件,该文件会调用脚本并动态生成配置数据。我无法更改文件的调用方式,否则我只能将配置数据导入。因此,每次读取我的文件“stuff.conf”时,它都应该获得运行 stuff.sh 的输出。

否则,我必须定期重写此配置,但源数据或程序读取的更改之间可能间隔数小时或数秒。因此,我必须将计时器设置得非常低,并且可能在 90% 的时间里浪费资源。

files
  • 3 个回答
  • 57 Views
Martin Hope
Pete Cooper
Asked: 2024-09-22 00:18:29 +0800 CST

我如何编辑“/sys/kernel/mm/ksm/”中的文件以使重启后仍能继续?

  • 8

我正在 Hetzner Cloud 的 Debian 12 VPS 上设置 Netdata。预检的一部分是确保将两个文件/sys/kernel/mm/ksm/设置为所需的值:

  • /sys/kernel/mm/ksm/run应该是1;目前是0。
  • /sys/kernel/mm/ksm/sleep_millisecs应该是1000;目前是20。

我的路线rm-> echo+ tee-> chown->chmod在第一步就失败了,因为我无权提交rm -f任何文件:

$ sudo rm -f /sys/kernel/mm/ksm/run
rm: cannot remove '/sys/kernel/mm/ksm/run': Operation not permitted

sed就地使用也会失败Permission denied。

/sys/kernel/mm/ksm/请问对 进行持久更改的最安全/最明智的方法是什么?

files
  • 2 个回答
  • 332 Views
Martin Hope
revsuine
Asked: 2024-08-24 00:16:57 +0800 CST

哪些文件系统最适合彻底删除文件?

  • 6

因此,该shred实用程序据称允许人们通过用随机数据反复覆盖文件来“安全地”删除文件。

显然,在写时复制文件系统上,几乎不可能完全删除曾经写入的数据。

但是,我读到过像 EXT3/4 和 XFS 这样的日志文件系统也变得shred无效。

假设我想要一个文件系统,其主要优先级是能够尽可能安全地删除文件。哪种文件系统最适合此目的?

我知道驱动器加密,但当你解密驱动器时,我的理解是你可以在驱动器上进行文件恢复,就像它未加密一样。我希望能够保护敏感的已删除文件,即使攻击者设法绕过驱动器加密。

files
  • 1 个回答
  • 38 Views
Martin Hope
user11718766
Asked: 2024-08-04 20:13:50 +0800 CST

使用 rsync 重命名重复文件时保留文件扩展名

  • 5

我有多个目录,它们的内容重叠。有时文件完全相同,有时名称相同但内容不同,有时名称相同的文件内容不同。我按如下方式合并目录:

$ rsync -aicPb --remove-source-files SOURCE-DIR/ TARGET-DIR/

此命令几乎完全符合我的要求。问题是文件扩展名未保留。即,参数-b导致TARGET-DIR/pictureA.jpg重命名为TARGET-DIR/pictureA.jpg~,而SOURCE-DIR/pictureA.jpg要复制到TARGET-DIR/。

rsync重命名重复文件时,有没有办法保留文件扩展名?例如,TARGET-DIR/pictureA.jpg应重命名为TARGET-DIR/pictureA~.jpg。

files
  • 2 个回答
  • 28 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