Questions tagged «command-line»

有关使用命令行界面(CLI)的问题。

4
条件失败时如何停止bash脚本?
在这里显示了使用||和&&在一行中连接命令的执行:如何在bash脚本中检查apt-get错误? 如果某个条件失败,我试图停止执行脚本, 例如 false || echo "Obvious error because its false on left" && exit 它在这里打印Obvious error because its false on the left并退出我想要的控制台。 true || echo "This shouldn't print" && exit 在这里,没有回显打印,但是exit命令也运行了,即,控制台已关闭,exit由于未执行右侧的echo命令,该命令不应该不运行吗?还是默认情况下,&&运算符左侧的语句被认为是错误的? 编辑:我之前应该提到它,我的目的是回显错误,如果不清楚,则退出。对于我使用&&和||分组条件时捕获错误的特定情况,@ bodhi.zazen答案解决了该问题。 @takatakatek的答案使您对流量控制更加清楚,bash指南链接也非常出色 @muru答案很好地解释了为什么不使用set -e如果您希望通过使用perl和trap的替代方法抛出自定义错误消息,我认为这是更可靠的方法,并且从第二个bash脚本开始就可以使用它!

2
批量重命名目录以将年份从结尾移到开头
我目前正在处理一些音乐文件夹。我曾经决定按照以下模式命名它们:artist - album - year。今天我意识到这并不是一个聪明的举动,现在想按照以下模式命名目录:year - artist - album因为目录列出后它们将以升序显示。 我开始手动重命名,但是大约有700个文件夹,必须有一种更简单的方法;我尝试使用,gprename但是我不太擅长正则表达式和bash脚本... 有谁能帮助我摆脱可怜的指尖? 一些例子: Aes Dana - Memory Shell - 2004 Anja Schneider & GummiHz - Back To Back (Remixes Part 2) - 2009 会成为 2004 - Aes Dana - Memory Shell 2009 - Anja Schneider & GummiHz - Back To Back …

3
如果特定的子目录为空,则删除父目录(非空)
我必须将包含文件的所有目录保留在特定的子目录中,但要删除其余所有子目录为空的目录。 更具体地说,这里是结构: A | |--------312311 | | | |----Recording | |----a.txt | |----b.txt | | |--------453453 | |----Recording | | | |-------a.mp3 | |----a.txt | |----b.txt | | |--------566532 | |----Recording | |----a.txt | |----b.txt 子目录可以包含文件,也可以不包含文件。因此,我需要删除整个目录,例如“ 312311”和“ 566532”,并且只保留“ 453453”中的所有数据,因为它在“录制”文件夹中有一个文件,这是我的特定目录。 我看到了很多帖子,但是它链接到许多特定的文件名。任何帮助将不胜感激,因为我每周需要做很多次。


1
从终端打开Ubuntu浏览器
很简单的问题: 如何从终端打开Ubuntu Internet浏览器? 我正在通过X转发会话运行计算机,并且需要找到打开Ubuntu浏览器的命令。它不是我的默认浏览器,所以请sensible-browser不要打开它。我试过了: browser ubuntu-browser gnome-browser sensible-browser brow* 他们都回来了,Command not found,除了sensible-browser,打开了chrome。

5
如何使用Shell脚本将文本文件中的值打印到列文件中
我从运行shell脚本得到的output.txt如下: abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2.txt Sat Nov 12 03:00:09 2016 文本文件以相同的方式逐行具有多个条目。我想将这些值打印到列中:Filename,Status和Timestamp,如下所示: Filename Status Timestamp abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2 Sat Nov 12 03:00:09 2016


3
仅将字符串的一部分分配给bash中的变量
我从用户收到一定绝对的文件路径,我想创建一个变量,会不会只包括一个字符串FIRST文件路径的两个组成部分,但是没有打印出来或任何东西。 例如,绝对路径可以是: /home/myusername/folder1/folder2/folder3 它保存在“ target_path”中,我希望“ mydir”只能是: /folder1/folder2/folder3 我尝试以不同的方式使用cut命令,但没有成功。


2
如何将许多大小相似的文件tar.gz放入具有大小限制的多个档案中
我在Ubuntu 16.04上。 我有一个包含很多文本文件的文件夹(近12k)。我需要将它们全部上传到可以接受.tar.gz上传然后自动解压缩的网站,但每个文件的限制为10MB(10000KB)(因此,每个文件都必须自行解压缩)。如果我tar.gz所有这些文件,生成的文件约为72MB。 我想做的是创建八个.tar.gz文件,每个文件的大小/尺寸(严格地)小于10000KB。 或者,可以假设上述所有文件的尺寸都大致相同,因此我想创建八个.tar.gz文件,每个文件的数量大致相同。 我该怎么做这两项任务? 对于涉及GUI,CLI或脚本的解决方案,我做的很好。我不是在这里寻找速度,我只需要完成它。

2
Gnome终端中是否有命令,或者任何可打开标签的外壳程序中都有打开新标签页的命令?
我不是在寻找键盘快捷键,而是想要以下命令: 新窗户 新标签 关闭当前标签页或窗口 最大化外壳窗口 最小化外壳窗口 将Shell移到其他工作空间 切换标签 基本上像这样。记得; 我不想要快捷方式,而是想要实际的命令。这样做的原因是我可以利用别名功能。

2
ls [13]和ls {1,3}有什么区别?
我使用命令在目录中创建了三个文件touch inv{1..3}.txt。现在,我使用了两个命令,它们的输出几乎相同。这两个命令是ls inv[13].txt和ls {1,3}.txt。 那么这两个有何不同?方括号与括号相比有何不同?我也一直在搜索“ linux [..]”,但是找不到任何东西,所以我能知道在Linux术语中这些东西是什么吗? 谢谢

2
如何传递带有空格作为参数的文件名?
我有一个接受字符串参数的Python脚本。 $ python script.py "one image.jpg" "another image.jpg" 这按预期工作。 Python argparse: ["one image.jpg", "another image.jpg"] 如果我需要传递文件名, $ python script.py $(ls "/some/dir/*.jpg") Python argparse: ["one", "image.jpg", "another", "image.jpg"] 如果使用-Qof ls命令,我可以将结果用双引号引起来。但是,引号在Python脚本中即转义。 $ python script.py $(ls -Q "/some/dir/*.jpg") Python argparse: ['"one image.jpg"', '"another image.jpg"'] 如何将ls文件名扩展为适当的字符串以用作参数?(如我的第一个示例)

4
将文件从一个目录递归复制到另一个目录
我所有的音乐都放在一个文件夹中/media/kalenpw/MyBook/Music/ABunchOfOtherFoldersWithFilesInside。我想将所有的mp3复制到,/media/kalenpw/HDD/Music所以我使用了: cp -R /media/kalenpw/MyBook/Music/*.mp3 /media/kalenpw/HDD/Music 但是,这只会将mp3复制到根音乐文件夹中,而没有打开任何艺术家子目录并复制这些文件。 我的印象是-R会递归复制所有文件。我如何实现上述目标?

2
每天计算一个文件夹中的文件数
我可以找到文件夹中所有文件的数量,但是数量却很多。 find . -type f | wc -l #find number of files in DIR ls -lrt #list all files order by date 如何查找每天的文件数? 因此,结果应为: # left number is number of files and right is one day. 109294 2016-06-27 101555 2016-06-26 88123 2016-06-25 ... etc.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.