小编rub*_*o77的帖子

如何仅循环遍历 bash 中的目录?

我有一个文件夹,里面有一些目录和一些文件(有些是隐藏的,以点开头)。

for d in *; do
 echo $d
done
Run Code Online (Sandbox Code Playgroud)

将遍历所有文件和目录,但我只想遍历目录。我怎么做?

bash directory files

389
推荐指数
6
解决办法
60万
查看次数

如何从某些输出的每一行中修剪前导和尾随空格?

我想从输出的每一行中删除所有前导和尾随空格和制表符。

有没有一个简单的工具,比如trim我可以将我的输出输入到其中?

示例文件:

test space at back 
 test space at front
TAB at end  
    TAB at front
sequence of some    space in the middle
some empty lines with differing TABS and spaces:





 test space at both ends 
Run Code Online (Sandbox Code Playgroud)

pipe shell-script text-processing whitespace

265
推荐指数
10
解决办法
52万
查看次数

如果会话存在,如何使用附加启动 tmux

如果我使用

tmux attach
Run Code Online (Sandbox Code Playgroud)

我可以附加到正在运行的会话,但如果没有运行会话,我只会收到错误

no sessions
Run Code Online (Sandbox Code Playgroud)

如果没有运行,如何自动启动新会话?就像是

tmux attach-or-create-new-session
Run Code Online (Sandbox Code Playgroud)

tmux

156
推荐指数
5
解决办法
15万
查看次数

如何使用 cut 分隔多个空格?

我有这个输入,它显示在列中。我想获取此示例的最后一列:

[  3]  1.0- 2.0 sec  1.00 MBytes  8.39 Mbits/sec
[  3]  2.0- 3.0 sec   768 KBytes  6.29 Mbits/sec
[  3]  3.0- 4.0 sec   512 KBytes  4.19 Mbits/sec
[  3]  4.0- 5.0 sec   256 KBytes  2.10 Mbits/sec
...
Run Code Online (Sandbox Code Playgroud)

如果我使用

cut -d\  -f 13
Run Code Online (Sandbox Code Playgroud)

我得到

Mbits/sec
6.29
4.19
2.10
Run Code Online (Sandbox Code Playgroud)

因为有时中间会有额外的空格。

text-processing cut columns

102
推荐指数
4
解决办法
9万
查看次数

按空格键继续

如何在用户按下之前停止 bash 脚本Space

我想在我的脚本中提出问题

按空格继续或CTRL+C退出

然后脚本应该停止并等到按下空格键。

bash control-flow

100
推荐指数
6
解决办法
13万
查看次数

如何检查文件是否是指向目录的符号链接?

我可以检查文件是否存在并且是带有 -L 的符号链接

for file in *; do
    if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi
done
Run Code Online (Sandbox Code Playgroud)

如果它是带有 -d 的目录:

for file in *; do
    if [[ -d "$file" ]]; then echo "$file is a directory"; else echo "$file is a regular file"; fi
done
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能只测试到目录的链接呢?


我模拟了一个测试文件夹中的所有案例:

/tmp/test# ls
a  b  c/  d@  e@  f@

/tmp/test# file *
a: ASCII text
b: ASCII text
c: directory
d: symbolic link …
Run Code Online (Sandbox Code Playgroud)

shell bash test

93
推荐指数
2
解决办法
15万
查看次数

创建没有密码的用户

我正在尝试创建一个没有密码的用户,如下所示:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git
Run Code Online (Sandbox Code Playgroud)

它创建得很好。但是当我尝试在 git 用户下登录时,我输入了密码:

su git
Password:...
Run Code Online (Sandbox Code Playgroud)

当我把它留空时,我收到一个错误:

su: Authentication failed
Run Code Online (Sandbox Code Playgroud)

怎么了?

users ubuntu git not-root-user

86
推荐指数
5
解决办法
26万
查看次数

如何将 cronjob 完全静音到 /dev/null/?

在我的 Ubuntu-Desktop 和我的 debian-server 上,我有一个需要每分钟执行一次的脚本(一个调用我的空间在线浏览器游戏的分钟的脚本)。

问题是 debian 派生 cron 在/var/log/syslog每次执行时都会记录。我最终看到重复执行的消息/var/log/syslog

Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
Run Code Online (Sandbox Code Playgroud)

我知道为了抑制程序的输出,我可以将它重定向到/dev/null,例如隐藏程序中的所有错误和警告消息,我可以像这样在 crontab 中创建一行

* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null
Run Code Online (Sandbox Code Playgroud)

但我想运行一个 cronjob 并确保所有生成的输出或错误都通过管道传递到 NULL,因此它不会在系统日志中生成任何消息,也不会生成任何电子邮件


编辑:
有一个解决方案可以通过更改将 cron-logs 重定向到一个单独的日志,就像这里提出的那样/etc/syslog.conf

但缺点是,所有 cronjobs 的所有输出都被重定向。

我可以以某种方式只将单个 cronjob 重定向到单独的日志文件吗?最好在cron.hourly文件本身内部进行配置。

cron io-redirection email

83
推荐指数
3
解决办法
23万
查看次数

允许用户监听 1024 以下的端口

我需要允许用户(与 root 不同)运行侦听端口 80 的服务器。

有没有办法做到这一点?

linux networking tcp privileges authbind

73
推荐指数
4
解决办法
14万
查看次数

使用 extundelete 在 ext4 上取消删除刚刚删除的文件

关于extundelete如何尝试取消删除/var/tmp/test.iso我刚刚删除的文件,是否有一个简单的选项?

(这并不重要,我会开始以只读方式重新安装驱动器或类似的东西。我也可以再次重新下载该文件)

我正在寻找一个简单的命令,如果我设法快速恢复它,我可以尝试使用它。

我知道,可以以只读方式重新安装驱动器:(请参阅如何简单地恢复刚刚删除的空磁盘上的唯一文件?

但这在仍然挂载的磁盘上也有可能吗?


信息:
如果删除的文件在 NTFS 分区上,则很容易,ntfsundelete例如,如果您知道大小约为 250MB,则使用

sudo ntfsundelete -S 240m-260m -p 100 /dev/hda2
Run Code Online (Sandbox Code Playgroud)

然后通过inode取消删除文件,例如

sudo ntfsundelete /dev/hda2 --undelete --inodes 8270
Run Code Online (Sandbox Code Playgroud)

data-recovery files extundelete deleted-files

60
推荐指数
4
解决办法
26万
查看次数