- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大多数 tar 文件解压缩到它们自己的子文件夹中(因为编写开源实用程序的人都是了不起的人)。
一些提取到我的 cwd 中,这使一切变得困惑。我知道有一种方法可以查看 tar 中的内容,但我想编写一个 bash 脚本,基本上保证我最终不会将 15 个文件提取到我的主文件夹中。
有什么建议吗?
伪代码:
if [listing of tar files] has any file that doesn't have a '/' in it:
mkdir [tar filename without extension]
tar xzvf [tar filename] into [the new folder]
else:
tar xzvf [tar filename] into cwd
编辑:
两种解决方案都很棒,我选择了下面的解决方案,因为我需要一个 bash 脚本,而且它不依赖于额外的软件。
但是,在我自己的机器上,我使用的是 aunpack,因为它可以处理更多的格式。
我将它与一个 shell 脚本一起使用,该脚本可以同时下载和解压缩所有内容。这是我正在使用的:
#!/bin/bash
wget -o temp.log --content-disposition $1
old=IFS
IFS='
'
r=`cat temp.log`
rm temp.log
for line in $r; do
substring=$(expr "$line" : 'Saving to: `\(.*\)'\')
if [ "$substring" != "" ]
then
aunpack $substring
rm $substring
IFS=$old
exit
fi
done
IFS=$old
最佳答案
来自 atool 的 aunpack
命令包这样做:
aunpack extracts files from an archive. Often one wants to extract all files in an archive to a single subdirectory. However, some archives contain multiple files in their root directories. The aunpack program overcomes this problem by first extracting files to a unique (temporary) directory, and then moving its contents back if possible. This also prevents local files from being overwritten by mistake.
关于bash - 只有当 tar 中有文件可以提取到我的 CWD 时,才将 .tgz 提取到特定的子文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618711/
问题 一般来说,在不考虑任何特定平台的情况下,Perl 中的 Cwd::cwd 和 Cwd::getcwd 之间有什么区别?为什么 Perl 两者兼而有之?预期用途是什么,在什么场景下应该使用哪一种?
我是 nodeJS 的新手,也是 StackOverflow 的新手... 我开始开发我的第一个 SPA,使用 RequireJS 将我的源代码编译到“dist”文件夹中。我让 NodeJS 运行一个
我在不同的目录中有一堆 unittest 测试用例。还有一个目录只包含测试的帮助脚本。所以我的文件树看起来像这样 test_dir1 test_dir2 test_dir3 helper_script
我知道cwd代表“当前工作目录”,但是我不明白为什么它必须包含在gruntfile.js中。 脚本不会始终在当前工作目录中运行吗?为什么需要更改或指定另一个? 最佳答案 grunt.js驻留在我们项目
如何允许对 Deno.cwd() 使用的 CWD(当前工作目录)进行读取访问? 我只想要 CWD 的明确许可。 我不想让每次读取都带有简单的 --allow-read 标志。 我试图将 CWD 作为参
假设我想在运行时加载一个模块。我预计这会起作用 use warnings; use strict; eval { require Cwd; Cwd->import; }; if ($@
我想重命名一个位于外部的关于我的实际工作目录的文件,但我只想使用该目录的相对路径,而不是该文件的绝对路径。 更准确地说,如果os.getcwd()大喊“/home/jscherman/Document
我当前的代码: gulp.task('_sass', function() { var files = [ './vendor/bower_components/bootstr
我正在尝试让我的程序更改目录(到用户希望的位置)但我无法导航到那里并创建文件?看起来我可以导航到那里但是当我到达下一个系统调用时它返回到当前目录 有没有办法设置我的程序 cwd 指向的位置? std:
我创建了一个 Perl 模块,用于许多 Perl 脚本以使用 Net::SSH::Expect进行登录。 package myRoutines; # use v5.22; use strict; us
我知道检查当前目录 opendir(dir_name) ,但我需要检查其他路径,而不是 CWD(current working directory) , 或者是否有任何功能是在执行 时将CWD 移动到
如何编写一个装饰器,将当前工作目录恢复到调用装饰函数之前的状态?换句话说,如果我在执行 os.chdir() 的函数上使用装饰器,则调用该函数后 cwd 不会更改。 最佳答案 已经给出了装饰者的答案;
我想用 C 编写一个命令行工具,作为可以移植到 Windows/Mac/Linux 的高级“cd”或“pushd/popd”命令。 (完整的细节,如果你好奇的话,在 http://alsweigart
我在使用 abs_path() 时遇到问题.我给这个函数一个有效的路径,但我得到 undef作为返回值。使用以下代码从命令行读取路径。 use warnings; use strict; use Da
我正在构建一个 node.js 应用程序。为了执行命令,我正在使用子进程。在执行命令之前,我必须需要更改 CWD(当前工作目录)。所以我有如下代码。 const exec = require('chi
在我当前的代码中,我使用 process.cwd() 获取当前工作目录,然后加载一些文件(如配置文件)。 下面我将展示我的代码的概念以及我如何测试它。 这是目录结构: ├── index.js └──
在 C 中,当使用 stdio.h 中的 FILE 结构时,如果程序员尝试打开文件,则当前工作目录将相对于构建目录。 是否有某种设置(可能是编译器标志)我可以使用它来允许在编译或运行时将 CWD 设置
我的脚本在使用 python 运行时运行良好,但在我使用 py2app 构建它之后,文件和文件夹在 .app/Contents/Resources< 中创建。我使用 os.getcwd() 找出脚本所
无论出于何种原因, from subprocess import Popen, PIPE, STDOUT handle = Popen('echo %CD%', shell=True, stdout=
所以我有以下代码块: #!/usr/bin/env node const path = require('path'); const yargs = require('yargs').argv; co
我是一名优秀的程序员,十分优秀!