tar: Using `--one-top-level` when input is piped in
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm trying to download a tar (works) and immediately unpack it to a subdirectory (ideally named the same as the archive). I thought following code should work but it attempts to write the write unpacked files to STDOUT and fails.
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz | tar -xvz --one-top-level
Results in (very cryptic failure):
...
Saving to: ‘STDOUT’
...
Cannot write to ‘-’ (Success).
Not specifying --one-top-level
fixes the issue but then the files inside just get extracted to current folder, as expected.
Doing it in two separate commands: downloading it first and then unpacking with intermediate file works, again as expected.
wget https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
tar -xvz --one-top-level -f artificial_objects.tgz
I know that I could create a subfolder and change tar's output directory using -C but I'd rather understand why my approach doesn't work.
TAR v2016
bash tar
add a comment |
I'm trying to download a tar (works) and immediately unpack it to a subdirectory (ideally named the same as the archive). I thought following code should work but it attempts to write the write unpacked files to STDOUT and fails.
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz | tar -xvz --one-top-level
Results in (very cryptic failure):
...
Saving to: ‘STDOUT’
...
Cannot write to ‘-’ (Success).
Not specifying --one-top-level
fixes the issue but then the files inside just get extracted to current folder, as expected.
Doing it in two separate commands: downloading it first and then unpacking with intermediate file works, again as expected.
wget https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
tar -xvz --one-top-level -f artificial_objects.tgz
I know that I could create a subfolder and change tar's output directory using -C but I'd rather understand why my approach doesn't work.
TAR v2016
bash tar
add a comment |
I'm trying to download a tar (works) and immediately unpack it to a subdirectory (ideally named the same as the archive). I thought following code should work but it attempts to write the write unpacked files to STDOUT and fails.
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz | tar -xvz --one-top-level
Results in (very cryptic failure):
...
Saving to: ‘STDOUT’
...
Cannot write to ‘-’ (Success).
Not specifying --one-top-level
fixes the issue but then the files inside just get extracted to current folder, as expected.
Doing it in two separate commands: downloading it first and then unpacking with intermediate file works, again as expected.
wget https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
tar -xvz --one-top-level -f artificial_objects.tgz
I know that I could create a subfolder and change tar's output directory using -C but I'd rather understand why my approach doesn't work.
TAR v2016
bash tar
I'm trying to download a tar (works) and immediately unpack it to a subdirectory (ideally named the same as the archive). I thought following code should work but it attempts to write the write unpacked files to STDOUT and fails.
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz | tar -xvz --one-top-level
Results in (very cryptic failure):
...
Saving to: ‘STDOUT’
...
Cannot write to ‘-’ (Success).
Not specifying --one-top-level
fixes the issue but then the files inside just get extracted to current folder, as expected.
Doing it in two separate commands: downloading it first and then unpacking with intermediate file works, again as expected.
wget https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
tar -xvz --one-top-level -f artificial_objects.tgz
I know that I could create a subfolder and change tar's output directory using -C but I'd rather understand why my approach doesn't work.
TAR v2016
bash tar
bash tar
edited Mar 5 at 21:13
Petrroll
asked Mar 5 at 17:27
PetrrollPetrroll
1033
1033
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
ideally named the same as the archive
It's true man 1 tar
says
--one-top-level[=DIR]
Extract all files intoDIR
, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by--auto-compress
).
The problem is tar
in your pipe cannot know the name of the archive; only wget
knows it. The message Cannot write to ‘-’ (Success)
is cryptic to me, as if the tool got confused. In my tests the exit status is 2
, this contradicts the alleged "success". Maybe tar
should be improved in handling this case.
Anyway, tar
doesn't know the name of the archive. It will work if you provide DIR
:
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
| tar -xvz --one-top-level=artificial_objects
It may or may not be artificial_objects
, it's totally up to you. The tool will create the directory, if needed.
Based on
$ tar --version
tar (GNU tar) 1.29
…
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1411542%2ftar-using-one-top-level-when-input-is-piped-in%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
ideally named the same as the archive
It's true man 1 tar
says
--one-top-level[=DIR]
Extract all files intoDIR
, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by--auto-compress
).
The problem is tar
in your pipe cannot know the name of the archive; only wget
knows it. The message Cannot write to ‘-’ (Success)
is cryptic to me, as if the tool got confused. In my tests the exit status is 2
, this contradicts the alleged "success". Maybe tar
should be improved in handling this case.
Anyway, tar
doesn't know the name of the archive. It will work if you provide DIR
:
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
| tar -xvz --one-top-level=artificial_objects
It may or may not be artificial_objects
, it's totally up to you. The tool will create the directory, if needed.
Based on
$ tar --version
tar (GNU tar) 1.29
…
add a comment |
ideally named the same as the archive
It's true man 1 tar
says
--one-top-level[=DIR]
Extract all files intoDIR
, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by--auto-compress
).
The problem is tar
in your pipe cannot know the name of the archive; only wget
knows it. The message Cannot write to ‘-’ (Success)
is cryptic to me, as if the tool got confused. In my tests the exit status is 2
, this contradicts the alleged "success". Maybe tar
should be improved in handling this case.
Anyway, tar
doesn't know the name of the archive. It will work if you provide DIR
:
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
| tar -xvz --one-top-level=artificial_objects
It may or may not be artificial_objects
, it's totally up to you. The tool will create the directory, if needed.
Based on
$ tar --version
tar (GNU tar) 1.29
…
add a comment |
ideally named the same as the archive
It's true man 1 tar
says
--one-top-level[=DIR]
Extract all files intoDIR
, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by--auto-compress
).
The problem is tar
in your pipe cannot know the name of the archive; only wget
knows it. The message Cannot write to ‘-’ (Success)
is cryptic to me, as if the tool got confused. In my tests the exit status is 2
, this contradicts the alleged "success". Maybe tar
should be improved in handling this case.
Anyway, tar
doesn't know the name of the archive. It will work if you provide DIR
:
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
| tar -xvz --one-top-level=artificial_objects
It may or may not be artificial_objects
, it's totally up to you. The tool will create the directory, if needed.
Based on
$ tar --version
tar (GNU tar) 1.29
…
ideally named the same as the archive
It's true man 1 tar
says
--one-top-level[=DIR]
Extract all files intoDIR
, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by--auto-compress
).
The problem is tar
in your pipe cannot know the name of the archive; only wget
knows it. The message Cannot write to ‘-’ (Success)
is cryptic to me, as if the tool got confused. In my tests the exit status is 2
, this contradicts the alleged "success". Maybe tar
should be improved in handling this case.
Anyway, tar
doesn't know the name of the archive. It will work if you provide DIR
:
wget -O - https://ufal.mff.cuni.cz/~zabokrtsky/courses/npfl104/data/classification/artificial_objects.tgz
| tar -xvz --one-top-level=artificial_objects
It may or may not be artificial_objects
, it's totally up to you. The tool will create the directory, if needed.
Based on
$ tar --version
tar (GNU tar) 1.29
…
edited Mar 5 at 18:24
answered Mar 5 at 18:13
Kamil MaciorowskiKamil Maciorowski
29k156287
29k156287
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1411542%2ftar-using-one-top-level-when-input-is-piped-in%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown