标签: bash

Bash 片段将目录中的所有文件移动到该目录中

我有一个目录,里面有很多文件和目录。为了整理一下,我将把所有这些文件放到一个目录中,所以我打算做这样的事情:

$ ls | wc -l
123
$ mkdir new_directory
$ mv * ./new_directory
Run Code Online (Sandbox Code Playgroud)

但是,这显然行不通,因为它会尝试new_directory进入new_directory. 是否有一些简单的方法可以在一行中完成我想要的操作,而不必复制和粘贴该目录中的所有文件和目录?

linux unix bash

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

计算 1970 年 1 月 1 日以来的天数

您如何计算自 1970 年 1 月 1 日以来的天数?这是用于更新OpenLDAP 上的shadowLastChange属性。

有没有办法使用 linux date命令来做到这一点?

linux openldap bash date

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

有没有人为 Windows 找到(例如 bash)shell 终端和 OS X 一样好?

我主要使用 Windows 安装的 Git vcs 附带的“git-bash”。我认为这与 Cygwin 附带的相同。它在技术上运行良好,但用户界面很糟糕:

  • 必须右键单击标题栏并转到属性以更改窗口宽度
  • 最烦人的......复制粘贴和用鼠标突出显示同样麻烦

相比之下,OS X 附带的终端应用程序可以从容地管理这些,并使其使用起来更加舒适。您甚至可以将文件拖放到其上,它会将文件路径粘贴到您的光标处!

我也试过:

  • http://sourceforge.net/projects/win-bash
  • http://www.steve.org.uk/Software/bash/
  • http://www.hamiltonlabs.com/cshell.htm

这些都不会在没有繁琐的右键单击的情况下复制和粘贴文本。

我专门在 Windows 中寻找 Unix 风格的 shell,因此我不必在我的家庭开发人员 (Windows)、实时服务器 (Linux) 或办公室开发人员 (Mac) 之间使用不同的 shell。

是的,我已经用谷歌搜索过,但还没有找到...

windows shell bash terminal

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

期望超时,在 Bash 脚本中

如何在以下脚本中为“expect”添加超时?我想将其设置为 120 秒。

#!/bin/bash
HOST="localhost"
USER="myuname"
PASS="mypassword"

VAR=$(expect -c "
spawn ssh $USER@$HOST
expect \"password:\"
send \"$PASS\r\"
expect \"\\\\$\"
send \"ls\r\"
expect -re \"$USER.*\"
send \"logout\"
")

echo "==============="
echo "$VAR"
Run Code Online (Sandbox Code Playgroud)

bash expect

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

在命令行中复制一系列文件 (ZSH/BASH)

我有一个以连续数字作为后缀的文件列表。我只想复制这些文件的一部分。如何将范围指定为 cp 命令的一部分。

$ls
P1080272.JPG* P1080273.JPG* P1080274.JPG* P1080275.JPG* P1080276.JPG* P1080277.JPG*
P1080278.JPG* P1080279.JPG* P1080280.JPG* P1080281.JPG* P1080282.JPG* P1080283.JPG*
Run Code Online (Sandbox Code Playgroud)

我想将文件从 P1080275.JPG 复制到 P1080283.JPG,内容类似于:

$cp P10802[75-83].JPG ~/Images/.
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

linux bash copy zsh

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

检查是否从 bash 脚本安装了 ruby​​ gem

我需要从 bash 脚本中检查是否安装了某些 Ruby gem。

我以为我可以做类似的事情

if ! gem list <name>; then do_stuff; fi
Run Code Online (Sandbox Code Playgroud)

但是在命令行上使用测试echo $?表明gem list <name>无论是否实际找到名称都返回 0。

这是否意味着我必须使用 grep 来过滤 gem list 的输出,或者有没有更好的方法可以检查是否安装了 gem?

bash gem

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

SSH 等效于 .profile/.bashrc

我正在寻找一种方法来在我 ssh 到的任何服务器上的会话中自动定义一些别名。我不能把它们.bashrc放在服务器上的文件中,因为我登录的用户帐户是由其他人共享的,此外还有几十个,在每台机器上维护一个脚本会很痛苦。我知道我可以用来expect自动输入别名,但我只是想知道 OpenSSH 是否有任何内置的东西可以用来实现这一点?

ssh bash

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

如何在bash脚本中设置postgresql用户密码

我想为默认的 Postgresql 服务器用户设置密码,postgres. 我是通过使用做到的:

sudo -u postgres psql
# \password postgres
Run Code Online (Sandbox Code Playgroud)

我想在多台机器上做这一步,所以我想创建一个bash脚本来做同样的事情。如何在 bash 中完成此操作?

postgresql password bash users shell-scripting

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

Bash 能否告诉我使用哪个 SSH 公钥进行身份验证?

假设我想跟踪我的root用户。他们每个人都有一个唯一的私钥,并且他们的公钥已存储在/root/.ssh/authorized_keys.

鉴于每个用户都使用他们唯一的密钥登录,我如何从 BASH 会话中判断哪个密钥用于进行身份验证?我在登录时尝试查看环境变量,但看不到任何将我的会话与我的公钥相关联的内容。

bash ssh-keys

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

如何拆分文件并直接压缩?

我有一个 100GB 的文件,我想分成 100 个 1GB 的文件(按换行符)

例如

split --bytes=1024M /path/to/input /path/to/output
Run Code Online (Sandbox Code Playgroud)

对于生成的 100 个文件,我想对每个文件应用 gzip/zip。

是否可以使用单个命令?

linux bash command-line-interface gzip

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