因此,正如问题所暗示的,我想获取 bash 脚本中命令的版本,而不是使用终端。
我知道所有可用的命令都以文件形式存在于目录/usr/bin中。但它没有提供版本,并且当您使用 cat 作为(命令)文件之一时,它会提供一些有趣的信息。
例如 -cat /usr/bin/man给出 -
这是什么以及如何获取版本?
我使用的是 Ubuntu 20.04。
我知道在这里问这是一个愚蠢的问题,但我找不到任何东西:/
据说最终编辑 - 接受的答案对我有用,我正在使用该功能。
后来我也意识到类似的东西foo --version也会起作用
但是,如果您使用变量来存储版本,那么您需要小心语法,我的做法是错误的。感谢@Romeo Ninov 指出这
foo --version也有效。
对于这些愚蠢的错误我真的很抱歉。
我想知道命令在运行时使用哪些文件(系统文件和非系统文件)。
我打算删除目录中的所有备份文件,所以我要rm *~在终端中输入。不幸的是,我在按下波浪号之前按下了Enter 键,不幸的事情发生了。虽然,我已经恢复了所有已删除的文件,但我真的不希望它再次发生。除非获得超级用户的权限,否则我可以禁止执行这样的命令吗?
我确实打字I'm running,然后喜欢它是否是一个程序。我只是想更多地了解这个命令或程序。
我刚刚创建了一个可执行文件:
ln -s /path/to/script.sh /bin/script
Run Code Online (Sandbox Code Playgroud)
然后我检查一切是否成功并且它确实(/bin/script已创建)但这也创建了:
/usr/bin/script
Run Code Online (Sandbox Code Playgroud)
如果我检查系统用于script命令的内容which,它会使用/usr/bin/script.
以下是链接:
2370517 0 lrwxrwxrwx. 1 root root 32 Jun 26 15:48 /bin/script -> /home/username/Scripts/script.sh
2370517 0 lrwxrwxrwx. 1 root root 32 Jun 26 15:48 /usr/bin/script -> /home/username/Scripts/script.sh
Run Code Online (Sandbox Code Playgroud)
问题:
为什么它创建第二个链接而不是遵守给定的命令,这是什么原因?
请注意,在创建此符号链接之前,我检查了该命令是否存在:
which script
/usr/bin/which: no script in (/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin:/usr/sbin:/usr/lib64
/alliance/bin:/usr/libexec/sdcc:/home/username/.local/bin:/home
/username/bin:/usr/lib64/alliance/bin:/usr/libexec/sdcc:/usr/lib64
/alliance/bin:/usr/libexec/sdcc)
Run Code Online (Sandbox Code Playgroud)
编辑#1
每条要求提供更多信息的评论:
$df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4067656 0 4067656 0% /dev
tmpfs 4079452 7876 4071576 …Run Code Online (Sandbox Code Playgroud) 我有许多不同长度但扩展名相同的文件,我尝试了许多命令来一次重命名所有文件。
是否可以只更改所有文件名基数的最后 10 个字符?最后 10 个字符始终相同。
例如 :
img(12345678).txt
test(12345678).txt
download(12345678).txt
upload(12345678).txt
Run Code Online (Sandbox Code Playgroud)
我想替换(12345678)为abcdefghij
如何在不使用 ls 命令的情况下列出当前目录或任何目录路径内容?我们可以使用 echo 命令来完成吗?
我需要一个命令,它只会将 http 请求发送到所需的 Web 目录?这样的东西存在吗?
我正在尝试测试存档是否包含所有文件。我需要做的就是一个简单的解压然后制作。shell 不断尝试像-aoq程序一样解释参数。其他错误也存在,但我会尽量避免读者这样做。以下是一些失败的尝试:
失败:
RESULT=$(unzip -aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/")
if [[ "$RESULT" -eq "0" ]]; then ... fi;
RESULT=$(unzip (-aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/"))
if [[ "$RESULT" -eq "0" ]]; then ... fi;
RESULT=$(unzip ("-aoq" "cryptopp.zip" "-d" "$TMP/cryptopp-zip/"))
if [[ "$RESULT" -eq "0" ]]; then ... fi;
RESULT=$(unzip "-aoq cryptopp563.zip -d $TMP/cryptopp563-zip/")
if [[ "$RESULT" -eq "0" ]]; then ... fi;
RESULT=$(unzip "{-aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/"}")
if [[ "$RESULT" -eq "0" ]]; then ... fi;
RESULT=$(unzip "(-aoq …Run Code Online (Sandbox Code Playgroud) 我需要压缩一些文件,使用mv命令将压缩文件移动到其他目录 ,然后从原始位置删除所有文件。但在我的情况下,rm命令是在mv命令和失败mv命令之前执行的。
我尝试了以下方法,但没有帮助。
方法一:
$ zip -r foo.zip * &; wait %1 && mv foo.zip mydir &; wait %1 && rm -rf *
Run Code Online (Sandbox Code Playgroud)
方法二:
[ zip -r foo.zip *] || {mv foo.zip mydir && rm -rf *}
Run Code Online (Sandbox Code Playgroud)