সর্বোত্তম পদ্ধতির জন্য স্টিফেনের উত্তরটি দেখুন, আরও সুস্পষ্ট সমাধান (এবং কেন তারা সবচেয়ে দক্ষ না হওয়ার কারণ) ব্যবহার না করার কারণে আমার উত্তরটি একবার দেখুন।
আপনি এর -I
বিকল্পটি ব্যবহার করতে পারেন xargs
:
find /tmp/ -ctime -1 -name "x*" | xargs -I '{}' mv '{}' ~/play/
কোনটি একটি অনুরূপ প্রক্রিয়া কাজ করে find
এবং {}
। আমি আপনার -name
যুক্তিও উদ্ধৃত করব (কারণ x
বর্তমান ডিরেক্টরিতে শুরু হওয়া কোনও ফাইল ফাইল-গ্লোবেড হবে এবং এটি অনুসন্ধানের জন্য একটি আর্গুমেন্ট হিসাবে পাস হবে - যা প্রত্যাশিত আচরণ দেয় না!)।
যাইহোক, ম্যানটওয়ার্ক দ্বারা চিহ্নিত হিসাবে, xargs
ম্যান পৃষ্ঠাতে বিস্তারিত :
-I replace-str
Replace occurrences of replace-str in the initial-arguments with
names read from standard input. Also, unquoted blanks do not
terminate input items; instead the separator is the newline
character. Implies -x and -L 1.
গুরুত্বপূর্ণ বিষয়টি লক্ষণীয় হ'ল এর -L 1
অর্থ হল যে একবারে কেবলমাত্র এক লাইন আউটপুট find
প্রক্রিয়া করা হবে। এর অর্থ এটি সিন্টেক্সিকভাবে একই রকম:
find /tmp/ -ctime -1 -name "x*" -exec mv '{}' ~/play/
(যা প্রতিটি ফাইলের mv
জন্য একটি একক অপারেশন চালায় )।
এমনকি জিএনইউ -0
xargs আর্গুমেন্ট এবং যুক্তি ব্যবহার করা find -print0
ঠিক একই আচরণের কারণ ঘটায় -I
- এটি clone()
প্রতিটি ফাইলের প্রক্রিয়াতে হয় mv
:
find . -name "x*" -print0 | strace xargs -0 -I '{}' mv '{}' /tmp/other
.
.
read(0, "./foobar1/xorgslsala11\0./foobar1"..., 4096) = 870
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbb82fad000
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=26066, ...}) = 0
mmap(NULL, 26066, PROT_READ, MAP_SHARED, 3, 0) = 0x7fbb82fa6000
close(3) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fbb835af9d0) = 661
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 661
--- SIGCHLD (Child exited) @ 0 (0) ---
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fbb835af9d0) = 662
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 662
--- SIGCHLD (Child exited) @ 0 (0) ---
.
.
.
-I
:find . | xargs -I'{}' mv '{}' ~/play/
তবে মানুষ যেমন বলে, "প্রয়োগ করে-x
এবং-L 1
।" সুতরাং কোনও লাভ নেই। এটিকে সহজ রাখা এবং ব্যবহার করা ভালfind . -exec mv '{}' ~/play/ \;