Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to
LinuxQuestions.org , a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free.
Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please
contact us . If you need to reset your password,
click here .
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a
virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month.
Click here for more info.
02-09-2020, 08:20 AM
#1
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Rep:
Copy list of files from text file and retain directory structure?
I have a text file with installation location of firefox that i get with 'dpkg -L firefox'. In my home directory i created folder 'firefox1' and i want to copy the files from the list to that directory retaining the directory structure. How can i do that? I want to create chroot directory for firefox and run it from that directory. I am using debian.
02-09-2020, 08:25 AM
#2
LQ Addict
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 22,069
there are several ways, like:
1. tar source | tar target
2. rsync
3. cp -r
4- etc
02-09-2020, 08:25 AM
#3
LQ Addict
Registered: Nov 2013
Location: Tokyo
Distribution: Mostly Ubuntu and Centos
Posts: 6,316
You can use tools like cp, tar, cpio, rsync. Since I don't see the list with the file names, I can't say more.
02-09-2020, 08:46 AM
#4
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Original Poster
Rep:
Quote:
Originally Posted by
berndbausch
You can use tools like cp, tar, cpio, rsync. Since I don't see the list with the file names, I can't say more.
This is the list:
Code:
/.
/etc
/etc/firefox-esr
/etc/firefox-esr/firefox-esr.js
/usr
/usr/bin
/usr/bin/firefox
package diverts others to: /usr/bin/firefox.real
/usr/lib
/usr/lib/firefox-esr
/usr/lib/firefox-esr/Throbber-small.gif
/usr/lib/firefox-esr/application.ini
/usr/lib/firefox-esr/browser
/usr/lib/firefox-esr/browser/blocklist.xml
/usr/lib/firefox-esr/browser/chrome.manifest
/usr/lib/firefox-esr/browser/crashreporter-override.ini
/usr/lib/firefox-esr/browser/features
/usr/lib/firefox-esr/browser/features/formautofill@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/fxmonitor@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/screenshots@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/webcompat-reporter@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/webcompat@mozilla.org.xpi
/usr/lib/firefox-esr/browser/omni.ja
/usr/lib/firefox-esr/chrome.manifest
/usr/lib/firefox-esr/crashreporter
/usr/lib/firefox-esr/crashreporter.ini
/usr/lib/firefox-esr/defaults
/usr/lib/firefox-esr/defaults/pref
/usr/lib/firefox-esr/defaults/pref/channel-prefs.js
/usr/lib/firefox-esr/dependentlibs.list
/usr/lib/firefox-esr/firefox-esr
/usr/lib/firefox-esr/fonts
/usr/lib/firefox-esr/fonts/TwemojiMozilla.ttf
/usr/lib/firefox-esr/gmp-clearkey
/usr/lib/firefox-esr/gmp-clearkey/0.1
/usr/lib/firefox-esr/gmp-clearkey/0.1/libclearkey.so
/usr/lib/firefox-esr/gmp-clearkey/0.1/manifest.json
/usr/lib/firefox-esr/gtk2
/usr/lib/firefox-esr/gtk2/libmozgtk.so
/usr/lib/firefox-esr/libfreeblpriv3.chk
/usr/lib/firefox-esr/libfreeblpriv3.so
/usr/lib/firefox-esr/liblgpllibs.so
/usr/lib/firefox-esr/libmozavcodec.so
/usr/lib/firefox-esr/libmozavutil.so
/usr/lib/firefox-esr/libmozgtk.so
/usr/lib/firefox-esr/libmozsandbox.so
/usr/lib/firefox-esr/libmozsqlite3.so
/usr/lib/firefox-esr/libmozwayland.so
/usr/lib/firefox-esr/libnspr4.so
/usr/lib/firefox-esr/libnss3.so
/usr/lib/firefox-esr/libnssckbi.so
/usr/lib/firefox-esr/libnssdbm3.chk
/usr/lib/firefox-esr/libnssdbm3.so
/usr/lib/firefox-esr/libnssutil3.so
/usr/lib/firefox-esr/libplc4.so
/usr/lib/firefox-esr/libplds4.so
/usr/lib/firefox-esr/libsmime3.so
/usr/lib/firefox-esr/libsoftokn3.chk
/usr/lib/firefox-esr/libsoftokn3.so
/usr/lib/firefox-esr/libssl3.so
/usr/lib/firefox-esr/libxul.so
/usr/lib/firefox-esr/minidump-analyzer
/usr/lib/firefox-esr/omni.ja
/usr/lib/firefox-esr/pingsender
/usr/lib/firefox-esr/platform.ini
/usr/lib/firefox-esr/plugin-container
/usr/lib/mime
/usr/lib/mime/packages
/usr/lib/mime/packages/firefox-esr
/usr/lib/mozilla
/usr/lib/mozilla/extensions
/usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
/usr/lib/mozilla/plugins
/usr/share
/usr/share/applications
/usr/share/applications/firefox-esr.desktop
/usr/share/bug
/usr/share/bug/firefox-esr
/usr/share/bug/firefox-esr/control
/usr/share/bug/firefox-esr/presubj
/usr/share/bug/firefox-esr/script
/usr/share/doc
/usr/share/doc/firefox-esr
/usr/share/doc/firefox-esr/NEWS.Debian.gz
/usr/share/doc/firefox-esr/README.Debian
/usr/share/doc/firefox-esr/changelog.Debian.gz
/usr/share/doc/firefox-esr/copyright
/usr/share/firefox-esr
/usr/share/firefox-esr/browser
/usr/share/firefox-esr/browser/chrome
/usr/share/firefox-esr/browser/chrome/icons
/usr/share/firefox-esr/browser/chrome/icons/default
/usr/share/firefox-esr/browser/chrome/icons/default/default128.png
/usr/share/firefox-esr/browser/chrome/icons/default/default16.png
/usr/share/firefox-esr/browser/chrome/icons/default/default32.png
/usr/share/firefox-esr/browser/chrome/icons/default/default48.png
/usr/share/firefox-esr/browser/chrome/icons/default/default64.png
/usr/share/firefox-esr/browser/defaults
/usr/share/firefox-esr/browser/defaults/preferences
/usr/share/firefox-esr/browser/defaults/preferences/debugger.js
/usr/share/firefox-esr/browser/defaults/preferences/devtools-client.js
/usr/share/firefox-esr/browser/defaults/preferences/devtools-startup.js
/usr/share/firefox-esr/browser/defaults/preferences/firefox-branding.js
/usr/share/firefox-esr/browser/defaults/preferences/firefox.js
/usr/share/firefox-esr/browser/defaults/preferences/vendor.js
/usr/share/firefox-esr/browser/defaults/preferences/webide.js
/usr/share/firefox-esr/distribution
/usr/share/firefox-esr/distribution/searchplugins
/usr/share/firefox-esr/distribution/searchplugins/common
/usr/share/firefox-esr/distribution/searchplugins/common/debsearch.xml
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/128x128
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/symbolic
/usr/share/icons/hicolor/symbolic/apps
/usr/share/icons/hicolor/symbolic/apps/firefox-esr-symbolic.svg
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/firefox-esr
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/firefox-esr.1.gz
/usr/share/mozilla
/usr/share/mozilla/extensions
/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
/usr/bin/firefox-esr
/usr/lib/firefox-esr/browser/chrome
/usr/lib/firefox-esr/browser/defaults
/usr/lib/firefox-esr/distribution
/usr/lib/firefox-esr/firefox-bin
/usr/share/firefox-esr/browser/defaults/syspref
/usr/share/icons/hicolor/128x128/apps/firefox-esr.png
/usr/share/icons/hicolor/16x16/apps/firefox-esr.png
/usr/share/icons/hicolor/32x32/apps/firefox-esr.png
/usr/share/icons/hicolor/48x48/apps/firefox-esr.png
/usr/share/icons/hicolor/64x64/apps/firefox-esr.png
02-09-2020, 08:48 AM
#5
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Original Poster
Rep:
Quote:
Originally Posted by
pan64
there are several ways, like:
1. tar source | tar target
2. rsync
3. cp -r
4- etc
This will not retain directory structure. Also, the files are not in one directory.
02-09-2020, 08:50 AM
#6
LQ Addict
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 22,069
Quote:
Originally Posted by
peter7089
This will not retain directory structure.
That is false. Or at least please tell us how did you try to do that?
02-09-2020, 09:19 AM
#7
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Original Poster
Rep:
Quote:
Originally Posted by
pan64
That is false. Or at least please tell us how did you try to do that?
I don't know how to do that from a text file that contain the list of files. That is why i am asking. I can copy directory and files one by one but this is not my goal.
For example this command copy the files but do not copy directory structure:
Code:
cat your_text_file | xargs cp -t /path/to/destination
Last edited by peter7089; 02-09-2020 at 09:24 AM .
02-09-2020, 09:37 AM
#8
LQ Guru
Registered: Oct 2004
Distribution: Arch
Posts: 5,153
Palemoon has a tarball that can be extracted and run from any folder.
http://linux.palemoon.org/download/mainline/
Does Firefox have a download like that? That would be the way to do what you want. Doubt if it will run if you move those files to another dir. They may if you put $HOME in your $PATH.
Quote:
I want to create chroot directory
Oh ok.
Look at
man cp -R -r
02-09-2020, 09:43 AM
#9
LQ Guru
Registered: Apr 2005
Distribution: Linux Mint, Devuan, OpenBSD
Posts: 7,369
Or with
tar
Code:
(cd /source/; tar -cf - ./*) | (cd /path/to/destination/; tar -xpf -)
02-09-2020, 09:50 AM
#10
LQ Guru
Registered: Oct 2004
Distribution: Arch
Posts: 5,153
Code:
mkdir ~/test
cd ~/palemoon
for i in *; do
cp -r "$i" ~/test/
done
ls -l ~/test
total 104480
-rw-r--r-- 1 edit users 428 Feb 9 09:49 application.ini
drwxr-xr-x 7 edit users 4096 Feb 9 09:49 browser
-rw-r--r-- 1 edit users 0 Feb 9 09:49 chrome.manifest
drwxr-xr-x 3 edit users 4096 Feb 9 09:49 defaults
-rw-r--r-- 1 edit users 127 Feb 9 09:49 dependentlibs.list
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 dictionaries
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 fonts
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 icons
-rw-r--r-- 1 edit users 10912528 Feb 9 09:49 icudt58l.dat
-rw-r--r-- 1 edit users 899 Feb 9 09:49 libfreeblpriv3.chk
-rwxr-xr-x 1 edit users 526872 Feb 9 09:49 libfreeblpriv3.so
-rwxr-xr-x 1 edit users 59712 Feb 9 09:49 liblgpllibs.so
-rwxr-xr-x 1 edit users 1834944 Feb 9 09:49 libmozavcodec.so
-rwxr-xr-x 1 edit users 212488 Feb 9 09:49 libmozavutil.so
-rwxr-xr-x 1 edit users 884280 Feb 9 09:49 libmozsqlite3.so
...
02-09-2020, 09:51 AM
#11
LQ Addict
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 22,069
rsync has an exclude/include flag, tar also can work on a filelist (given by a file).
02-09-2020, 10:53 AM
#12
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Original Poster
Rep:
Quote:
Originally Posted by
Turbocapitalist
Or with
tar
Code:
(cd /source/; tar -cf - ./*) | (cd /path/to/destination/; tar -xpf -)
I am trying to do that from list in a text file, and files are not in one directory:
Code:
/.
/etc
/etc/firefox-esr
/etc/firefox-esr/firefox-esr.js
/usr
/usr/bin
/usr/bin/firefox
package diverts others to: /usr/bin/firefox.real
/usr/lib
/usr/lib/firefox-esr
/usr/lib/firefox-esr/Throbber-small.gif
/usr/lib/firefox-esr/application.ini
/usr/lib/firefox-esr/browser
/usr/lib/firefox-esr/browser/blocklist.xml
/usr/lib/firefox-esr/browser/chrome.manifest
/usr/lib/firefox-esr/browser/crashreporter-override.ini
/usr/lib/firefox-esr/browser/features
/usr/lib/firefox-esr/browser/features/formautofill@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/fxmonitor@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/screenshots@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/webcompat-reporter@mozilla.org.xpi
/usr/lib/firefox-esr/browser/features/webcompat@mozilla.org.xpi
/usr/lib/firefox-esr/browser/omni.ja
/usr/lib/firefox-esr/chrome.manifest
/usr/lib/firefox-esr/crashreporter
/usr/lib/firefox-esr/crashreporter.ini
/usr/lib/firefox-esr/defaults
/usr/lib/firefox-esr/defaults/pref
/usr/lib/firefox-esr/defaults/pref/channel-prefs.js
/usr/lib/firefox-esr/dependentlibs.list
/usr/lib/firefox-esr/firefox-esr
/usr/lib/firefox-esr/fonts
/usr/lib/firefox-esr/fonts/TwemojiMozilla.ttf
/usr/lib/firefox-esr/gmp-clearkey
/usr/lib/firefox-esr/gmp-clearkey/0.1
/usr/lib/firefox-esr/gmp-clearkey/0.1/libclearkey.so
/usr/lib/firefox-esr/gmp-clearkey/0.1/manifest.json
/usr/lib/firefox-esr/gtk2
/usr/lib/firefox-esr/gtk2/libmozgtk.so
/usr/lib/firefox-esr/libfreeblpriv3.chk
/usr/lib/firefox-esr/libfreeblpriv3.so
/usr/lib/firefox-esr/liblgpllibs.so
/usr/lib/firefox-esr/libmozavcodec.so
/usr/lib/firefox-esr/libmozavutil.so
/usr/lib/firefox-esr/libmozgtk.so
/usr/lib/firefox-esr/libmozsandbox.so
/usr/lib/firefox-esr/libmozsqlite3.so
/usr/lib/firefox-esr/libmozwayland.so
/usr/lib/firefox-esr/libnspr4.so
/usr/lib/firefox-esr/libnss3.so
/usr/lib/firefox-esr/libnssckbi.so
/usr/lib/firefox-esr/libnssdbm3.chk
/usr/lib/firefox-esr/libnssdbm3.so
/usr/lib/firefox-esr/libnssutil3.so
/usr/lib/firefox-esr/libplc4.so
/usr/lib/firefox-esr/libplds4.so
/usr/lib/firefox-esr/libsmime3.so
/usr/lib/firefox-esr/libsoftokn3.chk
/usr/lib/firefox-esr/libsoftokn3.so
/usr/lib/firefox-esr/libssl3.so
/usr/lib/firefox-esr/libxul.so
/usr/lib/firefox-esr/minidump-analyzer
/usr/lib/firefox-esr/omni.ja
/usr/lib/firefox-esr/pingsender
/usr/lib/firefox-esr/platform.ini
/usr/lib/firefox-esr/plugin-container
/usr/lib/mime
/usr/lib/mime/packages
/usr/lib/mime/packages/firefox-esr
/usr/lib/mozilla
/usr/lib/mozilla/extensions
/usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
/usr/lib/mozilla/plugins
/usr/share
/usr/share/applications
/usr/share/applications/firefox-esr.desktop
/usr/share/bug
/usr/share/bug/firefox-esr
/usr/share/bug/firefox-esr/control
/usr/share/bug/firefox-esr/presubj
/usr/share/bug/firefox-esr/script
/usr/share/doc
/usr/share/doc/firefox-esr
/usr/share/doc/firefox-esr/NEWS.Debian.gz
/usr/share/doc/firefox-esr/README.Debian
/usr/share/doc/firefox-esr/changelog.Debian.gz
/usr/share/doc/firefox-esr/copyright
/usr/share/firefox-esr
/usr/share/firefox-esr/browser
/usr/share/firefox-esr/browser/chrome
/usr/share/firefox-esr/browser/chrome/icons
/usr/share/firefox-esr/browser/chrome/icons/default
/usr/share/firefox-esr/browser/chrome/icons/default/default128.png
/usr/share/firefox-esr/browser/chrome/icons/default/default16.png
/usr/share/firefox-esr/browser/chrome/icons/default/default32.png
/usr/share/firefox-esr/browser/chrome/icons/default/default48.png
/usr/share/firefox-esr/browser/chrome/icons/default/default64.png
/usr/share/firefox-esr/browser/defaults
/usr/share/firefox-esr/browser/defaults/preferences
/usr/share/firefox-esr/browser/defaults/preferences/debugger.js
/usr/share/firefox-esr/browser/defaults/preferences/devtools-client.js
/usr/share/firefox-esr/browser/defaults/preferences/devtools-startup.js
/usr/share/firefox-esr/browser/defaults/preferences/firefox-branding.js
/usr/share/firefox-esr/browser/defaults/preferences/firefox.js
/usr/share/firefox-esr/browser/defaults/preferences/vendor.js
/usr/share/firefox-esr/browser/defaults/preferences/webide.js
/usr/share/firefox-esr/distribution
/usr/share/firefox-esr/distribution/searchplugins
/usr/share/firefox-esr/distribution/searchplugins/common
/usr/share/firefox-esr/distribution/searchplugins/common/debsearch.xml
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/128x128
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/symbolic
/usr/share/icons/hicolor/symbolic/apps
/usr/share/icons/hicolor/symbolic/apps/firefox-esr-symbolic.svg
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/firefox-esr
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/firefox-esr.1.gz
/usr/share/mozilla
/usr/share/mozilla/extensions
/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
/usr/bin/firefox-esr
/usr/lib/firefox-esr/browser/chrome
/usr/lib/firefox-esr/browser/defaults
/usr/lib/firefox-esr/distribution
/usr/lib/firefox-esr/firefox-bin
/usr/share/firefox-esr/browser/defaults/syspref
/usr/share/icons/hicolor/128x128/apps/firefox-esr.png
/usr/share/icons/hicolor/16x16/apps/firefox-esr.png
/usr/share/icons/hicolor/32x32/apps/firefox-esr.png
/usr/share/icons/hicolor/48x48/apps/firefox-esr.png
/usr/share/icons/hicolor/64x64/apps/firefox-esr.png
02-09-2020, 10:55 AM
#13
Member
Registered: May 2016
Distribution: MX Linux
Posts: 249
Original Poster
Rep:
Quote:
Originally Posted by
teckk
Code:
mkdir ~/test
cd ~/palemoon
for i in *; do
cp -r "$i" ~/test/
done
ls -l ~/test
total 104480
-rw-r--r-- 1 edit users 428 Feb 9 09:49 application.ini
drwxr-xr-x 7 edit users 4096 Feb 9 09:49 browser
-rw-r--r-- 1 edit users 0 Feb 9 09:49 chrome.manifest
drwxr-xr-x 3 edit users 4096 Feb 9 09:49 defaults
-rw-r--r-- 1 edit users 127 Feb 9 09:49 dependentlibs.list
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 dictionaries
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 fonts
drwxr-xr-x 2 edit users 4096 Feb 9 09:49 icons
-rw-r--r-- 1 edit users 10912528 Feb 9 09:49 icudt58l.dat
-rw-r--r-- 1 edit users 899 Feb 9 09:49 libfreeblpriv3.chk
-rwxr-xr-x 1 edit users 526872 Feb 9 09:49 libfreeblpriv3.so
-rwxr-xr-x 1 edit users 59712 Feb 9 09:49 liblgpllibs.so
-rwxr-xr-x 1 edit users 1834944 Feb 9 09:49 libmozavcodec.so
-rwxr-xr-x 1 edit users 212488 Feb 9 09:49 libmozavutil.so
-rwxr-xr-x 1 edit users 884280 Feb 9 09:49 libmozsqlite3.so
...
Again, i need to do that from a list in a text file, and the files are not in one directory.
02-09-2020, 11:01 AM
#14
LQ Guru
Registered: Apr 2005
Distribution: Linux Mint, Devuan, OpenBSD
Posts: 7,369
I guess you could chain several utilities together to create the directories first. Then your
cp will have a place to put them.
Code:
cat your_text_file \
| xargs dirname \
| sort \
| uniq \
| xargs -I {} sh -c 'test -d {} && echo mkdir -p ./{}/'
cat your_text_file \
| xargs cp -t /path/to/destination
02-09-2020, 11:49 AM
#15
Moderator
Registered: Mar 2011
Location: USA
Distribution: MINT Debian, Angstrom, SUSE, Ubuntu, Debian
Posts: 9,885
Quote:
Originally Posted by
peter7089
Again, i need to do that from a list in a text file, and the files are not in one directory.
You've said this a few times.
You do realize a list which can be processed by the shell can come from a text file?
Are you having trouble understanding how to process a text file and use the data as entries in a list?
All times are GMT -5. The time now is 09:59 AM .
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know .
Latest Threads
LQ News