小编slm*_*slm的帖子

将大文件相互附加而不复制它们

有 5 个大文件(file1、file2、..file5),每个文件大约 10G,磁盘上剩余的可用空间极少,我需要将所有这些文件连接成一个。不需要保留原始文件,只保留最后一个。

通常的连接是cat按顺序进行的文件file2.. file5

cat file2 >> file1 ; rm file2
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方式需要至少 10G 的可用空间,我没有。有没有办法在不实际复制文件的情况下连接文件,但以某种方式告诉文件系统 file1 不会在原始 file1 结束处结束并在 file2 开始处继续?

附:如果重要的话,文件系统是 ext4。

filesystems files

45
推荐指数
3
解决办法
9816
查看次数

为什么我从 xauth 收到此消息:“锁定权限文件 /home/<user>/.Xauthority 超时”?

在尝试通过 SSH 连接到主机时,我收到了以下消息xauth

/usr/bin/xauth: 锁定权限文件 /home/sam/.Xauthority 超时

注意:我试图通过 SSH 连接远程显示 X11 GUI,因此我需要xauth能够$HOME/.Xauthority成功创建文件,但正如该消息所指示的那样,显然不是。

尝试运行任何基于 X11 的应用程序,例如xeyes收到此消息:

$ xeyes
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

remote-management x11 xauth

45
推荐指数
3
解决办法
15万
查看次数

当前文件夹和所有子文件夹中的 cat 文件

我想要cat当前文件夹中的文件和所有子文件夹(和子文件夹)中的所有文件。

这是我的目录结构

$ tree
.
??? f
?   ??? foo
??? yo
Run Code Online (Sandbox Code Playgroud)

我想猫fooyo

我试过这个命令但没有用:

cat */*
Run Code Online (Sandbox Code Playgroud)

它只是catš foo

shell directory cat tree

44
推荐指数
2
解决办法
12万
查看次数

如何通过网络将块设备从一台计算机安装到另一台计算机作为块设备?

是否可以导出块设备(例如 DVD 或 CDROM)并使其可以作为块设备安装在另一台计算机上?

注意:我对使用 NFS 或 Samba 不感兴趣,我实际上希望光驱在远程计算机上显示为光驱。

linux dvd mount block-device data-cd

43
推荐指数
3
解决办法
2万
查看次数

UFW:仅允许来自具有动态 IP 地址的域的流量

我运行了一个 VPS,我想使用 UFW 保护它,只允许连接到端口 80。但是,为了能够远程管理它,我需要保持端口 22 打开并使其可以从家里访问。

我知道可以将 UFW 配置为仅允许从特定 IP 地址连接到端口:

ufw allow proto tcp from 123.123.123.123 to any port 22
Run Code Online (Sandbox Code Playgroud)

但是我的 IP 地址是动态的,所以这还不是解决方案。

问题是:我使用 DynDNS 进行动态 DNS 解析,那么是否可以使用域而不是 IP 创建规则?

我已经试过了:

ufw allow proto tcp from mydomain.dyndns.org to any port 22
Run Code Online (Sandbox Code Playgroud)

但我得到了 ERROR: Bad source address

security firewall dynamic-dns ufw

42
推荐指数
4
解决办法
8万
查看次数

ls 没有 --zero 或 -0 选项是否有原因

这个问题是由关于ls'-1选项的问题以及人们反复提出问题和答案的倾向引起的,包括处理ls.

输出的这种重用ls似乎是可以理解的,例如:如果您知道如何对文件列表进行排序,ls那么您可能希望以这种方式使用输出作为其他内容的输入。

如果这些问答不包含对由行为良好的文件名(没有空格和换行符之类的特殊字符)组成的文件名列表的引用,则经常有人评论它们,指出命令序列在出现时不起作用的危险是带有换行符、空格等的文件。

find,sort和其他实用程序解决了将“困难”文件名传达给的问题,例如,xargs通过使用一个选项将文件名与 NUL 字符/字节分开,这不是文件名中的有效字符(除了/?之外的唯一一个) Unix/Linux 文件系统。

我查看了手册页ls和输出ls --help(列出了更多选项),但找不到ls(from coreutils) 有一个选项来指定 NUL 分隔的输出。它确实有一个-1选项可以解释为“用换行符分隔的输出文件名”

:是否有技术或哲学原因为什么ls没有“输出由 NUL 分隔的文件名”的--zero-0选项?

如果您执行的操作仅输出文件名(而不使用 eg -l),则可能有意义:

ls -rt -0 | xargs -r0 …
Run Code Online (Sandbox Code Playgroud)

我可能会遗漏一些为什么这不起作用的东西,或者我忽略了这个例子的替代方案,而且不是更复杂和/或模糊


附录:

这样做ls -lrt -0可能没有多大意义,但在以同样的方式find . -ls -print0不对,所以这不是一个理由不提供-0/ -z …

command-line ls shell

41
推荐指数
2
解决办法
8549
查看次数

如何在 VirtualBox 来宾中启用对 USB 设备的访问?

我在我的主机上看不到 VirtualBox 来宾 VM 中的任何 USB 设备。如何为我的来宾 VM 启用访问权限?

                               丢失 USB 设备的 ss

usb virtualbox

41
推荐指数
1
解决办法
14万
查看次数

以另一个(非 root)用户身份运行 GUI 应用程序

假设我有 2 个用户帐户user1user2. 当我以 登录user1,然后切换到user2使用时su,我可以执行命令行程序,但 GUI 程序失败。

例子:

user1@laptop:~$ su - user2
user2@laptop:~$ leafpad ~/somefile.txt
No protocol specified
leafpad: Cannot open display: 
Run Code Online (Sandbox Code Playgroud)

那么如何运行 GUI 应用程序呢?

shell xorg su x11

40
推荐指数
4
解决办法
6万
查看次数

ssh 返回消息“X11 转发请求在通道 1 上失败”

当我通过 ssh 进入未运行任何类型的 X11 桌面环境的远程服务器时,我收到以下消息。

$ ssh user@server
X11 forwarding request failed

$ ssh user@server ls
X11 forwarding request failed on channel 1
file1
file2
...
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱这些消息?

ssh x11

40
推荐指数
3
解决办法
8万
查看次数

`cd` 在哪里?

在 bash 子 shell 中,运行 cd 时出现以下错误

sudo: cd: command not found
Run Code Online (Sandbox Code Playgroud)

这是意料之中的,因为我没有路径。通常要解决这个问题,我只提供完整路径,如下所示:(/usr/local/bin/foo)

令我惊讶的是,cd它似乎不在任何正常的地方。

which cd
whereis cd
ls /bin | grep cd
Run Code Online (Sandbox Code Playgroud)

相比之下,ls正是我所期望的。

which ls
/bin/ls
Run Code Online (Sandbox Code Playgroud)

cd命令位于何处?为什么与所有其他命令不同?

更新

另一个有趣的花絮,cd 没有出现在 hash

hash
0   /bin/ls
2   /usr/bin/find
2   /sbin/ip
1   /usr/bin/updatedb
1   /usr/bin/apt-get
Run Code Online (Sandbox Code Playgroud)

shell fhs bash cd-command

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