标签: bash

在 OS X 中不小心通过 /bin/bash 复制了文件

我错误地复制了两个文件/bin/bash。这现在使我的终端无响应。我已按照教程进行操作,但没有帮助。

\n\n

作为参考,这些文件runcocoa.sh具体runc.sh来自本教程)。我也将它们复制到/usr/local/bin,但后来我删除了它们\xe2\x80\xa6

\n\n

如何恢复系统的功能?

\n

finder terminal bash macos

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

根据命令行中的文件夹将文件递归压缩到 .cbz 文件中

我试图弄清楚如何编写一个脚本来自动从 OSX 上文件夹中的图像创建 .cbz 文件。

我的目录树将如下所示:

/toplevel/
cbz/
comics/
    Comic1/
        comic1file1.jpg
        comic1file2.gif
        comic1file3.png
    Comic2/
        comic2file1.jpg
        comic2file2.gif
    Publisher/
            Comic3/
                comic3file1.jpg
                comic3file2.gif
                comic3file3.png
            Comic4/
                comic4file1.jpg
                comic4file2.gif
Run Code Online (Sandbox Code Playgroud)

我想做的是运行一个脚本,该脚本将找到包含实际文件而不是子文件夹的任何文件夹并将其压缩,将其从 .zip 重命名为 .cbz 并将 .cbz 文件移动到顶层的 /cbz 文件夹。任何包含子文件夹的文件夹不应包含任何文件,因此这可能会有所帮助。另外,我不希望存在比上面示例中显示的更深的子文件夹。

我在哪里:此代码片段将查看文件夹并为每个子文件夹创建 .cbz 文件。

for dir in `ls`; do zip $dir $dir/*; mv $dir*zip $dir.cbz; done
Run Code Online (Sandbox Code Playgroud)

我还发现了一些片段,这些片段将执行与所选文件夹下的每个子文件夹类似的操作,但我得到了不同的结果,并且非常有兴趣了解仅对文件夹执行操作的最佳方法。另外,我不知道如何检查给定文件夹是否包含子文件夹或文件。(我想理想情况下我应该检查是否两者都存在,但对于我当前的情况来说,不应该是这种情况。)有什么想法吗?

zip bash automation terminal.app macos

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

Bash tar 并输出到日志文件

如何将 TAR 操作写入日志文件?

tar -czvf arh.tar.gz public_html > 1.log
Run Code Online (Sandbox Code Playgroud)

TAR -czvf 成功了,谢谢大家!

现在在 bash 脚本中:

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]
    then
        ( tar -czvf $tbackups/$i".tar.gz" public_html >> $logs/backups.log ; )
    fi
done
Run Code Online (Sandbox Code Playgroud)

我如何在日志文件中进行输出,例如:

domain.com 成功归档,domain1.com 成功归档,依此类推。

bash tar bash-scripting

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

bash 何时重新哈希 PATH?

bash中什么情况下会进行PATHrehashed?我不知道什么时候需要打电话hash -r以及什么时候会自动发生。我能想到的最好的办法是,每当键入未找到的命令时,都会重新修改 PATH 。

bash

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

为什么 __git_ps1 不再在带有 MacPorts 的 OSX 上的 bash 中工作?

今天更新 Macports 后,我得到-bash: __git_ps1: command not found.

这是为什么?

bash shell macports macos

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

.bash_history 不存在

在 AWS 中工作时,我创建了一个 Ubuntu 14.04 实例,并注意到登录会话之间没有保留历史记录。进一步调查显示 .bash_history 文件不存在。为什么没有创建 .bash_history?

bash amazon-web-services ubuntu

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

OSX bash 命令行倒计时器

我在超级用户这里找到了以下不错的倒计时脚本,我可以将其包含在我的 .bash_profile 中:

function countdown(){  
   date1=$((`date +%s` + $1));   
   while [ "$date1" -ne `date +%s` ]; do   
     echo -ne "$(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";  
     sleep 0.1  
  done  
}
Run Code Online (Sandbox Code Playgroud)

据我所知,由于命令的差异,它在 OSX 上不起作用date。另一位用户这样评论,但该问题仍然没有解决。

同样的问题(我认为)也在这里讨论和解决,但我无法弄清楚如何修改倒计时脚本以利用此解决方案。

linux bash command-line macos

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

如何强制 gnuparallel 按顺序执行命令集?

Gnu Parallel 是一个功能强大的工具,我用它来并行运行许多独立的 BASH 命令作为一组。我希望能够顺序运行相同的命令,而不会对我使用的命令进行重大更改。我知道有一个开关可以强制按顺序运行输出,但我希望 gnuparallel 实际上按顺序运行。我的原因是为了在一台容易过热的机器上进行测试,解决我的硬件问题不是一种选择,此外,人们可能会想象其他测试方案,顺序运行 gnuparallel 会很有用。

所以。有没有办法简单地按顺序运行 gnuparallel 或者我需要手动将 gnuparallel 命令集解压到其组件命令中并按顺序运行它们?

linux bash parallel-processing gnu-parallel

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

提示输入值,直到按 ENTER 键并输入空值

我正在使用 bash 脚本来自动化一些任务。这就是我到目前为止所做的:

#!/usr/bin/env bash

PS3='Please enter your choice: '
options=("Create new group" "Add users to group" "Change directory ownership" "Change directory permissions" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Create new group")
            read -e -p "Enter the group name: " -i "www-pub" groupname
            groupadd groupname
            echo "You have added a new group: " groupname
            ;;
        "Add users to group")
            ## Here 
            ;;
        "Change directory ownership")
            read -e -p "Enter the group name: " -i "www-pub" "Enter the …
Run Code Online (Sandbox Code Playgroud)

linux centos script bash

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

如何将 grep 的输出传递给“lsof -p”?

我想知道当前运行的路径./a.out

有多个 MPI 进程,但我只需要几个 PID 之一./a.out。所以我首先使用下面的代码来 grep 它:

ps aux | grep -P "Rl.*a\.out" | grep -oP "\d+"|head -n 1
Run Code Online (Sandbox Code Playgroud)

它给出一个 PID,例如 12345。

现在我想使用:

lsof -p12345 
Run Code Online (Sandbox Code Playgroud)

知道PID 12345的文件路径。

如何将两步合并到一个命令行中?

bash grep command-line-arguments

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