我有一个像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)
这能做到吗?
编辑
同时,我自己编写了一个似乎可以完成工作的脚本。(请参阅下面我发布的答案)。如果可以改进,请随时发表评论/其他答案。最重要的是它应该可以打包成一个单线,如:
extract <file>
Run Code Online (Sandbox Code Playgroud) 当我使用时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) 我想获取一个现有的 pdf 并使其尺寸更宽(添加空白),以便我可以使用我的图形输入板(在 Xournal++ 中加载)向其添加我自己的手绘注释。
到目前为止,我找到了一种通过 pdfcrop 做到这一点的方法:
pdfcrop --margin '0 0 400 0' in.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)
但我丢失了右侧的大纲/书签部分。
有谁知道有什么办法吗?
(Linux app/cmd 是首选,但如果有人知道的话,我愿意探索在线或 windows/osx 工具..)。
命令blkid
代表什么?
我想要一种方法来记住它。另外,它经常用来做什么?
我正在尝试使用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) 我正在尝试创建一个以管道开头的别名。
前任:
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)
即,如果别名以管道开头,则别名似乎无法正常工作。有没有办法做到这一点?