小编Leo*_*sev的帖子

tar 提取到具有相同基本名称的目录中?

我有一个像myArchive123.tar.gz. 它里面包含一个文件夹,如helloWorld

如果我提取它:tar -xf myArchive123.tar.gz我得到helloWorld文件夹:

ls 
myArchive123.tar.gz
helloWorld 
Run Code Online (Sandbox Code Playgroud)

我希望输出的名称与文件名减去 .tar.gz 扩展名相同。IE:

tar <magic paramaters> myArchive123.tar.gz 
ls 
 myArchive123.tar.gz
 myArchive123
cd myArchive123
ls 
  helloWorld
Run Code Online (Sandbox Code Playgroud)

这能做到吗?

  • 我永远不知道档案里有什么。可能是一个文件夹,也可能是许多文件。
  • 如果 tar 无法做到,我可以使用其他工具。
  • 我可以用更长的形式,可以变成脚本

编辑
同时,我自己编写了一个似乎可以完成工作的脚本。(请参阅下面我发布的答案)。如果可以改进,请随时发表评论/其他答案。最重要的是它应该可以打包成一个单线,如:

extract <file>
Run Code Online (Sandbox Code Playgroud)

tar

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

查找命令,枚举输出并允许选择?

当我使用时find,它经常会发现多个结果,例如

find -name pom.xml
./projectA/pom.xml
./projectB/pom.xml
./projectC/pom.xml
Run Code Online (Sandbox Code Playgroud)

我经常只想选择一个特定的结果,(例如edit ./projectB/pom.xml)。有没有办法枚举find输出并选择一个文件传递给另一个应用程序?喜欢:

find <print line nums?> -name pom.xml
1 ./projectA/pom.xml
2 ./projectB/pom.xml
3 ./projectC/pom.xml

!! | <get 2nd entry> | xargs myEditor
Run Code Online (Sandbox Code Playgroud)

?

[编辑] 我在提到的一些解决方案中遇到了一些特殊的错误。所以我想解释一下重现的步骤:

git clone http://git.eclipse.org/gitroot/platform/eclipse.platform.swt.git
cd eclipse.platform.swt.git
<now try looking for 'pom.xml' and 'feature.xml' files>
Run Code Online (Sandbox Code Playgroud)

[编辑] 解决方案 1 到目前为止,如果我将“nl”(枚举输出)、head & tail 组合成函数并使用 $(!!),它们似乎可以工作。

IE:

find -name pom.xml | nl   #look for files, enumirate output.

#I then define a function called "nls"
nls () { …
Run Code Online (Sandbox Code Playgroud)

bash find files

10
推荐指数
1
解决办法
1760
查看次数

在 pdf 中添加额外边距(右侧)而不丢失轮廓?

我想获取一个现有的 pdf 并使其尺寸更宽(添加空白),以便我可以使用我的图形输入板(在 Xournal++ 中加载)向其添加我自己的手绘注释。

到目前为止,我找到了一种通过 pdfcrop 做到这一点的方法:

pdfcrop --margin '0 0 400 0' in.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)

但我丢失了右侧的大纲/书签部分。

有谁知道有什么办法吗?
(Linux app/cmd 是首选,但如果有人知道的话,我愿意探索在线或 windows/osx 工具..)。

linux pdf

10
推荐指数
2
解决办法
3828
查看次数

blkid 代表什么?

命令blkid代表什么?

我想要一种方法来记住它。另外,它经常用来做什么?

linux command-line rhel command

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

apropos 正则表达式以什么开头?

我正在尝试使用apropos以便查找以 . 开头的所有手册页system

我尝试:

apropos ^system
apropos "^system"
Run Code Online (Sandbox Code Playgroud)

但这些似乎返回的行不以系统开头,而是系统出现在行中的某个位置。

有任何想法吗?

编辑

根据下面的评论,上面的内容实际上有效,但它与多个组件匹配:
- cmd 名称
- cmd 描述 - cmd oneliner。

所以当我搜索系统时,我得到了这样一行:

tapset::task_time (3stap) - systemtap task_time tapset
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为描述是从系统开始的。

真正获得以“system”开头的行的一种方法是:

apropos "" | grep "^system"
Run Code Online (Sandbox Code Playgroud)

command-line man search

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

以管道开头的 bash 别名不起作用?

我正在尝试创建一个以管道开头的别名。

前任:

echo -i "hello\nworld" | grep world
> world
alias gr="| grep"
echo -i "hello\nworld" gr world
> hello
> world gr world
Run Code Online (Sandbox Code Playgroud)

即,如果别名以管道开头,则别名似乎无法正常工作。有没有办法做到这一点?

bash alias

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

标签 统计

bash ×2

command-line ×2

linux ×2

alias ×1

command ×1

files ×1

find ×1

man ×1

pdf ×1

rhel ×1

search ×1

tar ×1