Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to the Power Users community on Codidact!

Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.

Comments on How to copy files preserving one directory up

Post

How to copy files preserving one directory up

+5
−0

Have

mkdir -p d1/d1_sd1/ d2/d2_sd1/
touch d1/d1_sd1/f1.txt d2/d2_sd1/f1.txt
.
├── d1
│   └── d1_sd1
│       └── f1.txt
└── d2
    └── d2_sd1
        └── f1.txt

4 directories, 2 files

Want

.
├── d1
│   └── d1_sd1
│       └── f1.txt
├── d1_sd1
│   └── f1.txt
├── d2
│   └── d2_sd1
│       └── f1.txt
└── d2_sd1
    └── f1.txt

6 directories, 4 files

Question

How do I cp files with a pattern preserving one directory up from the match?

I'd expect a modification to this call:

cp -r d*/*/f1.txt .

Tried

cp -r --parents d*/*/f1.txt .
History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

2 comment threads

cp only? Which cp? (5 comments)
./a/b/c/d ---> ./c/d ? (2 comments)
cp only? Which cp?
Canina‭ wrote over 2 years ago

Is it a hard requirement to use cp for this, or would other file-copying tools also be acceptable? (I imagine rsync just might be useful here, for example, but haven't looked in detail.) You tagged this "linux", so are we to assume GNU coreutils cp or do you need POSIX cp compatibility so that it'll work with e.g. busybox?

mcp‭ wrote over 2 years ago · edited over 2 years ago

These are good clarifying questions. I do not have any real hard requirement, besides it working in a linux terminal.

The less dependencies the solution comes with, the better. I was hoping for one that uses GNU coreutils, but there's no penalty to documenting other solutions.

I am using Arch Linux with a zsh shell if that helps.

Quasímodo‭ wrote over 2 years ago

The question is not off-topic here (Linux Systems is a subset of Power Users), but given the question and context, this would be a perfect fit for Linux Systems.

mcp‭ wrote about 2 years ago

I am not sure how to change this, but you have my permission to organize it as you see fit!

Quasímodo‭ wrote about 2 years ago

mcp‭ Moderators cannot move questions to other networks; All is fine anyway because the question is totally on topic here.