小编roa*_*ima的帖子

按文件中的列表移动文件(带前导空格)

我有一个包含文件名的文件。例如:

/tmp/list.txt (每行开头都有空格):

  /tmp/file.log
  /app/nir/home.txt
  /etc/config.cust
Run Code Online (Sandbox Code Playgroud)

我想用一行将列出的所有文件移动/tmp/list.txt/app/dest

所以它应该是这样的:

cat /tmp/list.txt | xargs mv /app/dest/
Run Code Online (Sandbox Code Playgroud)

shell-script rename files

18
推荐指数
2
解决办法
6万
查看次数

如何使用`find -exec`在找到的文件目录(不是当前目录)中执行命令?

假设我在一个目录中,该目录有一些子目录dir1dir2、 和dir3。这些目录中的每一个都有一个文件foo,我想对每个foo目录中的每个目录执行相同的命令,并从该目录中执行该命令。

如果我要“手动”完成它,它看起来像这样:

cd dir1
(execute on foo)
cd ../dir2
(execute on foo)
cd ../dir3
(execute on foo)
Run Code Online (Sandbox Code Playgroud)

必须从每个目录执行命令。 foo是一个批处理调度脚本(对于 HTCondor,如果您想知道)并且必须从每个子目录执行,以便调度脚本启动的运行的输出将在每个子目录中结束。

据我所知,问题“在文件目录中查找文件并执行命令”并不能回答我的问题。该问题的第一个答案更多是一种在我的情况下不起作用的解决方法,而第二个答案没有足够的解释让我知道如何使用它。

find

18
推荐指数
1
解决办法
2万
查看次数

Postgres 数据库服务器使用哪些网络协议?

我有一个 postgres 9.1 服务器在 Ubuntu 12.04 云服务器上的默认端口 5432 上运行。

我想打开端口,这样我就可以进行远程查询——但是我必须在 IP 表上打开端口,这需要我指定一个协议。这个文档没有提到 TCP/UDP 等。

我应该在 IP 表中允许什么协议?

iptables database postgresql protocols

17
推荐指数
1
解决办法
2万
查看次数

为什么 flock 不清理锁文件?

进程完成后,我看到锁文件没有被删除?有什么理由flock保留文件吗?另外如何flock知道是否获得了锁?

这是来自crontab文件的示例

* * * * * flock python <script_name>.py
Run Code Online (Sandbox Code Playgroud)

lock flock

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

删除带有 .nfs 文件的文件/文件夹

很多时候当我删除一个文件夹时,它说由于.nfs文件而无法删除。

Error - Device or resource busy
Run Code Online (Sandbox Code Playgroud)

如何删除忽略这些错误的文件夹(rm命令中有任何标志)?或者我必须找出使用它的进程,然后首先终止该进程?

在这种情况下,我如何才能删除整个目录?

directory nfs rm

13
推荐指数
1
解决办法
7万
查看次数

gzip 是原子的吗?

gzip原子的吗?

如果我gzip在 gzip 文件中间停止该过程会发生什么?

如果它不是原子的,并且我已经在一个gzip *.txt进程上按下了 Ctrl+C ,我该如何安全地恢复?

(我不仅好奇如何恢复,还好奇gzip具体是否是原子的。)

command-line gzip

13
推荐指数
3
解决办法
3702
查看次数

使用 `$var &amp;&amp; action` 将空变量视为逻辑“true”(shell 解析)

考虑一种简单的调试风格,其中$debug可以设置为truefalse根据某些命令行标志:

\n
$debug && echo "Something strange just happened" >&2\n
Run Code Online (Sandbox Code Playgroud)\n

我知道有更好的方法来防止值设置,例如${debug:-false}甚至是全功能的logMessage()-type 函数,但让我们暂时搁置它。

\n

假设仍然未设置或为空的糟糕情况$debug。我预计$debug && echo \xe2\x80\xa6这样的空值$debug将被解析并计算为&& echo \xe2\x80\xa6,这将触发随后的语法错误。但相反,它似乎被评估为类似的东西: && echo \xe2\x80\xa6,最终执行echo.

\n

我已经用bashksh和进行了测试dash,并且场景保持一致。

\n

我的理解是这两行被解析为等价的,但显然它们不是:

\n
unset debug; $debug && echo stuff\nunset debug; && echo stuff\n
Run Code Online (Sandbox Code Playgroud)\n

为什么代码会表现得好像未设置的变量在逻辑上为真,而不是因诸如 之类的错误而失败syntax error near unexpected token `&&'

\n

shell syntax

13
推荐指数
3
解决办法
1021
查看次数

复制符号链接及其指向使用 rsync 的位置

它不需要由 完成rsync,但是不必编写脚本来执行此操作会很好,并且rsync非常接近我想要的。

rsync -a( 或-l) 可以保留符号链接,并且-L可以取消引用符号链接并将其复制为普通文件/目录。但是,是否可以保留符号链接,并复制链接指向的文件/目录?

这是一个例子。假设我们有这个文件夹层次结构:

dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
Run Code Online (Sandbox Code Playgroud)

当我这样做rsync -aR dirA dest(或其他事情)时,我希望这些出现在dest

dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
Run Code Online (Sandbox Code Playgroud)

这可能rsync吗?谢谢你。

让我们假设可以忽略具有绝对路径或指向源目录外部的符号链接。

rsync symlink

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

为什么我的名为“killl”的脚本失败,但重命名后效果很好?

有问题的脚本终止了我的本地主机端口 8080 上的最新进程。

#!/bin/bash
x=$(lsof -i:8080 | tail -1 | awk '{print $2}')
kill -9 $x
Run Code Online (Sandbox Code Playgroud)

如果脚本被命名为“killl”(明白了吗?杀死最新的?),它不起作用。它提示我cmdsubst> 将脚本重命名为“asdf”,一切正常。这种行为有解释吗?我正在使用 MacOS El Capitán。

osx shell-script

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

安装debian 12时忘记安装桌面环境

我在安装 Debian 12 时忘记安装桌面环境。

安装时我卡在 tty1,没有 GUI,只有文本。我在 Facebook 群组上询问过,那里的人说我忘记安装桌面环境了。

我应该怎么办?

linux debian desktop-environment software-installation system-installation

11
推荐指数
3
解决办法
4212
查看次数