tmp文件包含:
database_1 database_2 database_3
我要为上述文件中的每一行运行一个命令,例如“ mysqldump DATABASE> database.sql&& gzip database.sql”.
我已经了解到cat / tmp / database-list | xargs -L 1 mysqldump -u根-p
我想我想知道如何将传递到xargs的数据放入多次(而不只是在末端)
编辑:以下命令将每个数据库转储到其自己的.sql文件中,然后将其gzip.
mysql -u root -pPASSWORD -B -e 'show databases' | sed -e '$!N; s/Database\n//' | xargs -L1 -I db mysqldump -u root -pPASSWORD -r db.backup.sql db; gzip *.sql
解决方法:
在您自己的示例中,您使用&&在一行上使用两个命令-为什么不这样做
cat file | xargs -L1 -I db mysqldump db > db.sql && cat file | xargs -L1 -I db gzip database.sql
如果您真的只想使用xargs在一行中完成所有操作.虽然我相信
cat file | xargs -L1 -I db mysqldump db > db.sql && cat file; gzip *.sql
会更有意义.