小编Jos*_*osh的帖子

有没有一种简单的方法可以用硬链接替换重复文件?

我正在寻找一种简单的方法(一个命令或一系列命令,可能涉及find)在两个目录中查找重复文件,并将一个目录中的文件替换为另一个目录中文件的硬链接。

情况是这样的:这是一个文件服务器,多人在上面存储音频文件,每个用户都有自己的文件夹。有时,多人拥有完全相同的音频文件的副本。现在,这些都是重复的。我想让它们成为硬链接,以节省硬盘空间。

hard-link files deduplication duplicate-files

173
推荐指数
11
解决办法
6万
查看次数

如何“重新链接”大量损坏的符号链接?

我有一个目录树,它有一堆指向文件的符号链接/home......但是,我已经转移/home/mnt/home并且需要一种方法来“重新链接”所有符号链接。是否存在此类功能,或者我是否需要编写脚本来执行此操作?

例如,我有以下内容:

[root@trees ~]# ls -l /mnt/home/someone/something
total 4264
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 a -> /home/someone/someotherthing/a
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 b -> /home/someone/someotherthing/b
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 c -> /home/someone/someotherthing/c
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 d -> /home/someone/someotherthing/d
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 e -> /home/someone/someotherthing/e

/mnt/home/someone/something/subdir:
total 4264
lrwxrwxrwx 1 jnet www-data      55 2011-08-07 13:50 a -> /home/someone/someotherthing/subdir/a
lrwxrwxrwx 1 …
Run Code Online (Sandbox Code Playgroud)

command-line symlink

60
推荐指数
3
解决办法
5万
查看次数

当我在我的 shell 中执行一个文件时到底发生了什么?

所以,我以为我对此有一个很好的理解,但只是进行了一个测试(以回应我不同意某人的对话)并发现我的理解有缺陷......

尽可能详细地说明当我在 shell 中执行文件时到底发生了什么?我的意思是,如果我输入:./somefile some arguments进入我的 shell 并按回车键(并且somefile存在于 cwd 中,并且我有读取+执行权限somefile),那么引擎盖下会发生什么?

以为答案是:

  1. 外壳程序对 进行系统调用exec,将路径传递给somefile
  2. 内核检查somefile并查看文件的幻数,以确定它是否是处理器可以处理的格式
  3. 如果幻数表明文件是处理器可以执行的格式,那么
    1. 创建一个新进程(在进程表中有一个条目)
    2. somefile被读取/映射到内存。创建堆栈并执行跳转到代码的入口点somefile,并ARGV初始化为参数数组 (a char**, ["some","arguments"])
  4. 如果幻数是shebang,exec()如上所述生成一个新进程,但使用的可执行文件是shebang(例如/bin/bash/bin/perl)引用的解释器并somefile传递给STDIN
  5. 如果文件没有有效的幻数,则会出现“无效文件(错误的幻数):Exec 格式错误”之类的错误

但是有人告诉我,如果文件是纯文本,那么 shell 会尝试执行命令(就像我输入了bash somefile)。我不相信这一点,但我只是尝试了一下,结果是正确的。所以我显然对这里实际发生的事情有一些误解,并想了解机制。

当我在我的 shell 中执行一个文件时到底发生了什么?(尽可能多的细节是合理的......)

shell kernel exec shebang

38
推荐指数
3
解决办法
5761
查看次数

如何在 X11 下输入度数符号(使用默认英文键盘布局)?

我正在尝试将室外温度(以度为单位)放入电子邮件中。在我的 Mac 上,度数符号 ( °) 是Option+ Shift+ 8。但是我在 Ubuntu 10.10 上用 Thunderbird 编写电子邮件,使用默认的美国英语键盘布局。我使用什么组合键来获得 X11 下的度数符号?

编辑: Gert 成功地回答了这个问题……但是,比他的回答中的更容易使用的击键的奖励积分!

keyboard special-characters x11

32
推荐指数
4
解决办法
2万
查看次数

你应该同步的哲学是否真实?同步; 同步; 同步?

当我第一次接触 Linux 时,2000 年在 Cisco Systems 工作,我被教导了该sync命令的优点,用于将缓冲区刷新到磁盘以防止文件系统损坏/数据丢失。不仅那里的同事告诉我,大学里的朋友也告诉我总是跑sync“几次”或“一堆”,也就是说,也许 5-10 次,而不是一次。

从那以后我一直保持这个习惯,但是,这有什么好处吗?有没有其他人听说过这个?最重要的是,任何人都可以为/反对您需要sync多次运行才能有效的想法提供良好的基本原理/经验证据吗?

buffer synchronization

31
推荐指数
3
解决办法
8172
查看次数

我可以在不关闭 linux 的情况下识别我的 RAM 吗?

我想为我们的内部 VMware 测试服务器定价一些新 RAM。(这是我们用来在业务 VM 上测试和运行我们的软件的消费者盒子)。我忘记了它有什么样的 RAM,我宁愿不重启机器并启动 memtest86+ 只是为了获得 RAM 的规格。有什么方法可以让我知道在不关闭 linux 并让每个人都离开的情况下购买哪种 RAM?EG 是某处的信息/proc

linux memory system-information

20
推荐指数
2
解决办法
3342
查看次数

我可以将进程限制在一定的时间/CPU 周期内吗?

我们有一个在我们的 Web 服务器上运行的脚本,由客户操作触发,它启动一个 unix 进程来生成一些缓存文件。由于此进程对我们客户提供的文件起作用,因此它有时会出现行为不端,运行时间过长以致生成它的 PHP 进程超时或使用太多 CPU 时间以致系统管理员将其杀死。

是否有任何我可以运行的命令会限制进程的 CPU 时间/运行时间?我正在寻找类似的命令/usr/bin/time,我可以在其中运行该命令并将其传递给我希望它运行和限制的命令行。

process limit

16
推荐指数
2
解决办法
7067
查看次数

是否有命令可以强制 Linux 刷新 NFS 共享上一个文件的缓存?

StackOverflow上的这个问题相关,我想知道是否有办法刷新 NFS 缓存/强制 Linux 查看 NFS 共享上文件的最新副本。

我有一种情况,四台 Apache 服务器通过 NFS 挂载同一目录,当一台服务器更改文件时,其他服务器需要大约 5 - 10 秒才能看到该更改。如果在此窗口中对该文件进行了第二次更改,它可能会覆盖第一次更改。

fstab文件系统的条目是:

172.16.1.15:/home               /media/home     nfs     vers=3,defaults,noauto,sync,acregmin=1          0       0
Run Code Online (Sandbox Code Playgroud)

是否有命令可以强制 Linux 刷新 NFS 共享上一个文件的缓存?

cache nfs

16
推荐指数
1
解决办法
3万
查看次数

我可以在多个屏幕窗口中轻松搜索我的历史记录吗?

我当前的screen会话有 12 个打开的窗口。它已经运行了数周......我知道我上周某个时候convert在这 12 个屏幕窗口之一中执行了 ImageMagick命令......有什么方法可以轻松搜索所有 12 个实例的 Bash 历史记录,而无需关闭它们或运行它们history | grep convert在所有 12 个屏幕中?

bash gnu-screen command-history

12
推荐指数
1
解决办法
3093
查看次数

如何以人类可读的格式找出 LVM PV 上的可用空间?

我正在寻找一种无需使用计算器即可获得 LVM 物理卷上的可用空间的方法。

我知道该pvdisplay命令将显示 PE 大小以及可用 PE 的大小,因此通过将 PE 大小乘以可用 PE,我知道可用空间(以 KB 为单位)。但我想要一个命令,它告诉我以兆字节、千兆字节等为单位的可用空间。

的输出pvdisplay是:

[root@df02 mysql]# pvdisplay
  /dev/cdrom: open failed: No medium found
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               MMB
  PV Size               29.71 GB / not usable 19.77 MB
  Allocatable           yes 
  PE Size (KByte)       32768
  Total PE              950
  Free PE               221
  Allocated PE          729
  PV UUID               QfZGfn-a3VV-IRkw-bV9g-6iqm-zXjN-y5e6gr
Run Code Online (Sandbox Code Playgroud)

因此,本例中的可用空间为 32768 KByte * 221 Free PE = 7241728 KiB,即 6.90625 GiB。但是,如果没有计算器,就需要做很多数学运算;-)

是否有命令可以为我提供 LVM 物理卷上的可用空间(以兆字节/千兆字节为单位)?

lvm

10
推荐指数
1
解决办法
6万
查看次数