Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
Running a command after a command that used xargs and fswatch

Hi I am trying to write a shell command that does:

  1. watch a folder
  2. when a file has changed copy that new file somewhere
  3. then runs a make task

fswatch ./src | xargs -I {} cp {} ./otherfolder

the first 2 things are working with the command above, but I cannot figure out how to run a command after this.

I've tried

fswatch ./src | xargs -I {} cp {} ./otherfolder && make

That doesn't work because the && are conflicting with xargs I think

fswatch ./src | xargs -I {} cp {} ./otherfolder | make

Here the make command is immediately called, not after the copying is done. (It's even called before fswatch triggers on a change)

Is it possible to run a command after the cp using xargs?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

One way to solve the problem would be to spawn a shell:

fswatch  ./src | xargs -I {} sh -c "cp '{}' ./otherfolder && make"

The contents of the double quotes are executed in a separate shell and will behave as you expect (first the copy, then the execution of make, assuming the copy was successful).

The single quotes around {} are advised to guard against problems when the filename contains spaces or other characters such as * which would otherwise be expanded by the shell.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!